Получаю из базы данных строку values. Она представляет собой числа через запятую
1,0,2,0,3,1,4,0,5,1
Первое число Id, второе - значение. (т.е Id = 1 - значение = 0, Id = 3 - значение = 1)
Эту строку мне уже далее нужно преобразовать в объект с первым типом Int, вторым Byte. Я делаю это так
List<object> values_obj = new List<object>();
List<int> list = (mysqlReader.GetString("values") != "") ? mysqlReader.GetString("values").Split(',').Select(n => Convert.ToInt32(n)).ToList() : new List<int>();
for (int i = 0; i < list.Count;)
{
values_obj.Add(new object[]
{
Convert.ToInt32(list[i++]),
Convert.ToByte(list[i++])
});
}
Но как это оформить более правильно ( по-профессиональному)) ), посоветуйте пожалуйста? Не перечислять Id, значение через запятую, а сделать как-то так
{{"id":1, "value":0}, {"id":2, "value":1}} или {{1:0}, {2:1}}
Ваш код рабочий и тут мало что можно добавить, разве что может результат лучше иметь типизированный, например класс или Tuple
var str = "1,2,3,4,5,6,7,8";
var res = new List<(int, byte)>();
var splitted = str.Split(',');
for (int i = 0; i < splitted.Length; i += 2)
res.Add((int.Parse(splitted[i]), byte.Parse(splitted[i + 1])));
res.ForEach(x => Console.WriteLine($"{x.Item1} - {x.Item2}"));
Вывод
1 - 2
3 - 4
5 - 6
7 - 8
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Возможно удалить систему управления версиями из решения в Visual Studio 2019 с помощью интерфейса?
Знаю, что подобных вопросов было много, но ответа в них для себя, к сожалению, найти не смогВероятно буду писать глупости, не судите строго,...