Парсинг строки на c# через :
Есть строка вида "1:String1:2:2:3:String3:4:String4"
Эту строку нужно распарсить в
string 1 = String1
int 2 = 2
string 3 = String3
string 4 = String4
Как это можно реализовать на c#?
UPD: количество и тип каждого значения заранее известен
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Для пар ключ-значение можно использовать словарь
static void Main(string[] args)
{
Dictionary<int, string> dictionary = new Dictionary<int, string>();
string text = "1:String1:2:2:3:String3:4:String4";
string[] values = text.Split(':');
for (int i = 0; i < values.Length - 1; i += 2)
{
if (int.TryParse(values[i], out int index))
dictionary.Add(index, values[i + 1]);
}
foreach (KeyValuePair<int, string> pair in dictionary)
{
bool isInt = int.TryParse(pair.Value, out _);
Console.WriteLine("{0} {1} = {2}", isInt ? "int" : "string", pair.Key, pair.Value);
}
Console.ReadKey();
}
Вывод в консоль
string 1 = String1
int 2 = 2
string 3 = String3
string 4 = String4