字典在c#中具有toDictionary的重复键

时间:2019-11-12 13:24:12

标签: c# list linq dictionary duplicates

我正在尝试使用list.District()和toDictionary从列表中消除重复的字符串,但是它不起作用。

任何建议我如何使用Linq消除重复代码?

这是我的代码

["1004212942019-DGD-2000000478"]

然后我要像上面那样拆分单词

2 个答案:

答案 0 :(得分:2)

您可以使用Select保存Split字符串,然后使用GroupBy键,然后使用选择方法为多个值创建Dictionary-我选择了{ {1}}:

First

答案 1 :(得分:1)

ToDictionary()在设计上对重复键失败。您可以过滤掉数据,或在数据前插入GroupBy()以消除重复的条目。

最后,您还可以考虑使用ToLookup()来容忍重复的密钥。

添加GroupBy()就像这样:

public Dictionary<string, int> SensorValues => 
     InOrderSensorValues.GroupBy(x => x.Split(':')[0].ToUpper()).
     ToDictionary(g => g.Key, g => int.Parse(g.First().Split(':')[1]));