如何在字典的列表中使用.Distinct()?C#
我有如何在字典的列表中使用.Distinct()?C#,c#,C#,我有字典,我想使用.Distinct()从列表中删除重复的值。 我该怎么做呢?您可以根据现有的值构建一个新的字典 var n_dict = new Dictionary<string, IEnumerable<int>>(); foreach(string key in d.Keys) { n_dict[key] = d[key].Distinct().ToArray(); } 字典中的键已经不同了。你能更具体一些,用一些示例代码吗?可能重复的可能重复的请提供
字典
,我想使用.Distinct()
从列表中删除重复的值。
我该怎么做呢?您可以根据现有的值构建一个新的
字典
var n_dict = new Dictionary<string, IEnumerable<int>>();
foreach(string key in d.Keys)
{
n_dict[key] = d[key].Distinct().ToArray();
}
字典中的键已经不同了。你能更具体一些,用一些示例代码吗?可能重复的可能重复的请提供一些伪代码和所需输出的示例。我们不知道您是想要按值显示不同的KeyValuePairs,还是只想要一个不同值的列表(后者是一个重复的问题)。您正在寻找这个吗dic=dic.ToDictionary(x=>x.Key,x=>x.Value.Distinct().ToList())
在初始化n_dict
(第一个代码行)时,首先使用d
似乎很浪费。如果需要任何优化,可以执行var n_dict=new Dictionary(d.Count)代码>相反,从一开始就设置正确的容量。否则,要创建一个新的词典
,请将问题注释中的Enigmativity中的代码,d=d.ToDictionary(x=>x.Key,x=>x.Value.Distinct().ToList())代码>更容易。
var n_dict = new Dictionary<string, IEnumerable<int>>(d.Count);
d = d.ToDictionary(x => x.Key, x => x.Value.Distinct().ToList());