我有一个字符串数组。每个字符串是两个用“|”分隔的数字。
如何在不循环遍历数组的情况下将此数组字符串转换为Dictionary<int,int>
,拆分每个字符串并添加到字典中。
有更好的方法吗?
答案 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]);
但是你应该知道,如果有重复的密钥,这将抛出异常。