如何在字典的列表中使用.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());