我正在将字符串数组更改为字典集合。
string str = "When everybody is somebody then no one is anybody";
char[] separation = { ' ', '.', ',' };
var splitted=str.Split(separation);
(绝对不是一个好的设计,但我希望知道逻辑)
当我构建查询
时var indexed = (from i in Enumerable.Range(1, splitted.Length)
from strn in splitted
select new { i, strn }).ToDictionary(x => x.i, x => x.strn);
我收到了"Key already found in dictionary"
。我提供枚举的唯一键
值。
答案 0 :(得分:1)
不,你没有提供唯一的密钥。您正在提供:
1 When
2 When
3 When
...
9 When
1 everybody
2 everybody
等
...所以你要两次给“1”作为一把钥匙(如果你有这么远的话,那么你再次提供“2”作为一把钥匙。)
你实际上想要达到什么结果?如果是:1 - >当,2 - >大家等等你想要的:
var indexed = splitted.Select((value, index) => new { value, index })
.ToDictionary(x => x.index + 1, x => x.value);