数据源

var list = new List<TestClass>
{
    new TestClass{Id=1,Name="1"},
    new TestClass{Id=2,Name="2"},
    new TestClass{Id=3,Name="3"},
    new TestClass{Id=4,Name="4"},
    new TestClass{Id=5,Name="5"},
    new TestClass{Id=1,Name="9"},
};
View Code

1.使用HashSet去重再ToDictionary(这个就是Linq的DistinctBy)

var hash = new HashSet<int>();
var dict = list.Where(n=>!hash.Add(n.Id)).ToDictionary(key => key.Id, value => value.Name);
View Code

2.使用ToLookup(类似于一对多的字典)

var lookup = list.ToLookup(key => key.Id, value => value.Name);

 

posted on 2019-05-02 23:29  cigarlau  阅读(356)  评论(0编辑  收藏  举报