我有以下对象集合列表。
column1:
Point data type
x=10,y=20
我已经使用
Point
过滤了 linq ofType<Point>
列。Var XYLocations = Source.Select(g => g.ofType<Point>).ToList();
现在
XYLocations
包含重复项。从该列表中,我想使用 linq 将列表转换为
dictionary<Point,List<int>>
,其中点是键,相应的匹配行索引充当值。 最佳答案
尝试这样的事情:
var xyLocations = //initialization
var dictionary = xyLocations
.Select((p, i) => new Tuple<Point, int>(p, i))
.GroupBy(tp => tp.Item1, tp => tp.Item2)
.ToDictionary(gr => gr.Key, gr => gr.ToList());
如果你没有元组,你可以使用匿名类型:
var dictionary = xyLocations
.Select((p, i) => new {Item1 = p, Item2 = i})
.GroupBy(tp => tp.Item1, tp => tp.Item2)
.ToDictionary(gr => gr.Key, gr => gr.ToList());
关于c# - 使用 LINQ 将对象集合转换为字典,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7495104/