Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
3 / 2 / 1
Регистрация: 13.05.2013
Сообщений: 234

Массив типа decimal конвертировать в список типа List<KeyValuePair>

19.06.2019, 15:20. Показов 929. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется строка:
"1, 0.014, 2, 0.015, 3, 0.079, 4, 0.674, 5, 0.016, 6, 0.012". Где 1,2,3,4,5,6 - ключ, значения типа decimal - значение.

Имеется класс
C#
1
2
3
4
5
public class KeyValuePair
{
    public decimal key { get; set; }
    public decimal value { get; set; }
}
Как сделать что-то подобное, только конвертировать в список типа List<KeyValuePair>?
C#
1
2
3
4
var dict = text.Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries)
               .Select(part => part.Split('='))
               .ToDictionary(split => split[0], split => split[1]);
В данном примере всё пакуется в словарь, и входная строка имеет формат с разделителями "key1=value1;key2=value2;key3=value3;"
p.s. все значения в строке типа decimal, для примера привёл интовые значения.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.06.2019, 15:20
Ответы с готовыми решениями:

Массив типа char конвертировать в массив типа BYTE
TCHAR str = {'8','B','0','1','8','B','4','9','0','4','A','3'} ... BYTE byte= {0x8B, 0x01, 0x8B, 0x49, 0x04, 0xA3} как это...

Список List. Добавляем строки типа char
Собственно, не получается в List добавлять корректно строки char. Нужно получить список из входных строк, а получается список из первых...

есть ли в Java 1.0, 1.1.x список типа List но с поддержкой иконок
собственно говоря вот такой вопрос. обычный список List из awt поддерживает только текстовый режим.

3
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
19.06.2019, 16:02
DEMON_RUS, так?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace ConsoleApp58
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = "1, 0.014, 2, 0.015, 3, 0.079, 4, 0.674, 5, 0.016, 6, 0.012";
   
            var dict = text.Split(new[] { ',',' ' }, StringSplitOptions.RemoveEmptyEntries).Select(part => part).ToList();
 
            List<KeyValuePair> LKeyValuePair = new List<KeyValuePair>();
 
            for (int i = 0; i < dict.Count; i++)
            {
                if (i % 2 == 0)
                {
                    LKeyValuePair.Add(new KeyValuePair { key = Convert.ToInt32(dict[i]), value = Convert.ToDecimal(dict[i + 1].Replace(".", ",")) });
                }              
            }
 
            foreach (KeyValuePair NewList in LKeyValuePair)
            {
                Console.WriteLine(NewList.key + " = " + NewList.value);
            }
        }
    }
    public class KeyValuePair
    {
        public int key { get; set; }
        public decimal value { get; set; }
    }
}
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
19.06.2019, 16:10
Цитата Сообщение от DEMON_RUS Посмотреть сообщение
Как сделать что-то подобное, только конвертировать в список типа List<KeyValuePair>?
C#
1
2
3
4
5
6
var dict = text.Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries)
               .Select(part => part.Split('='))
               .ToDictionary(split => split[0], split => split[1]);
/// В данном примере всё пакуется в словарь, 
/// и входная строка имеет формат с разделителями "key1=value1;key2=value2;key3=value3;"
var list = dict.ToList();
0
21 / 6 / 8
Регистрация: 31.05.2015
Сообщений: 151
19.06.2019, 16:15
Можно еще так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
using System.Text.RegularExpressions;
 
            String input = "1, 0.014, 2, 0.015, 3, 0.079, 4, 0.674, 5, 0.016, 6, 0.012";
            String pattern = @"(?<Key>\d*), (?<Value>\d*\.\d*)";
 
            List<KeyValuePair> pairs = new List<KeyValuePair>();
            foreach (Match m in Regex.Matches(input,pattern))
            {
                KeyValuePair pair = new KeyValuePair();
                pair.key = Convert.ToInt32(m.Groups["Key"].Value);
                pair.value = Convert.ToDecimal(m.Groups["Value"].Value.Replace('.',','));
                pairs.Add(pair);
            }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.06.2019, 16:15
Помогаю со студенческими работами здесь

Разобрать код (Считывается файл побайтово в список типа List)
Всем добрый день, расскажите пожалуйста по шагам что тут происходит - я не совсем понимаю public void Code(string filename) ...

Как конвертировать переменную типа Double в переменную типа String?
Как конвертировать переменную типа Double в переменную типа String. И наоборот.

Динамические массивы. Дан массив записей из полей типа Char, Word, Byte. Преобразовать его в массив типа Longint
FreePascal Выполнить обработку массивов в соответствии с заданием. Предусмотреть описание массивов как динамических. Само задание: Дан...

Вывод типа decimal на View
Доброго времени суток уважаемые форумчане. Есть View класс содержащий свойство с типом decimal. public decimal...

извлечь квадратный корень из числа типа decimal
Возникла необходимость работать с типом decimal. Но sqrt вот с ним не работает. Не подскажете, как извлечь квадратный корень в числа такого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru