串联字符串数组到Dictionary <int,int =“”> </int,>

时间:2014-11-27 16:30:41

标签: c# arrays dictionary

我有一个字符串数组。每个字符串是两个用“|”分隔的数字。

如何在不循环遍历数组的情况下将此数组字符串转换为Dictionary<int,int>,拆分每个字符串并添加到字典中。

有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

简单地,

var result = strings
    .Select(s => s.Split('|'))
    .ToDictionary(a => int.Parse(a[0]), a => int.Parse(a[1]));

如果允许重复,

var result = strings
    .Select(s => s.Split('|'))
    .ToLookup(a => int.Parse(a[0]), a => int.Parse(a[1]));

答案 1 :(得分:1)

您可以使用ToDictionary方法:

var dictionary = stringArray.ToDictionary(x => x.Split('|')[0], x => x.Split('|')[1]);

但是你应该知道,如果有重复的密钥,这将抛出异常。