Как разбить строку на пары ключ-значение с помощью словаря новой строки‹string,string›

строковый формат

addr,hname,beam,txrate,rxrate,dcap,ucap,txuse,rxuse,rxrssi0,rxrssi1,txrssi0,txrssi1,txper,rxper,txopqual
04:18:D6:bb:F4:C6,Name,0,270000,270000,295650,263250,31,17,35,36,37,35,124,229,0

желаемый результат

addr = 04:18:D6:bb:F4:C6
hname = Name
beam = 0

и так далее ... ... я хотел бы соединить значение ключа t, но ключ - это новая строка, формирующая значение, и поместить их в словарь для вывода, используйте этот код, но я хотел бы знать, есть ли более эффективный способ сделать это, который будет пропускать пустые значения

это то, что у меня есть до сих пор

Dictionary<string, string> INFO =  new Dictionary<string, string>();
var terminal = client.RunCommand("amstainfo");
var output = terminal.Result;
string[] line = output.Split(new string[] { "\n" }, StringSplitOptions.None);
string[] KEY = line[0].Split(new string[] { "," }, StringSplitOptions.None);
string[] VALUE = line[1].Split(new string[] { "," }, StringSplitOptions.None);
int i = 0;
foreach (var ist in KEY)
{
    INFO.Add(KEY[i], VALUE[i]);
    i++;
}

person user3265026    schedule 05.08.2015    source источник
comment
Используйте StringSplitOptions.RemoveEmptyEntries вместо StringSplitOptions.None   -  person EZI    schedule 05.08.2015
comment
@EZI Это изменит порядок значений. Связь ключ-значение будет потеряна.   -  person Sriram Sakthivel    schedule 05.08.2015


Ответы (2)



Вы можете включить оператор if в цикл foreach, чтобы проверить, не является ли значение пустым или нулевым, прежде чем добавлять его в словарь.

foreach (var ist in KEY)
{
    if(!string.IsNullOrEmpty(VALUE[i]))
    {
       INFO.Add(KEY[i], VALUE[i]);
    }
    i++;
}
person Oluwafemi    schedule 05.08.2015