【发布时间】:2010-01-22 18:09:04
【问题描述】:
我有以下代码:
IEqualityComparer<WorkItem> comparer =
new LambdaComparer<WorkItem>((item1, item2) => item1.Type == item2.Type);
var someVar = Pad.Distinct(comparer);
(这个想法是每种类型都得到 1 个)
它给出了以下错误消息:
我做过类似的事情,效果很好:
Pad = new Dictionary<WorkItem, Canvas>(new LambdaComparer<WorkItem>((x, y) => x.Id == y.Id, x => x.Id));
所以我不认为这是我的 LamdaComparer 类。
关于如何解决这个问题的任何想法? (我想我可以做一个 ForEach 并手动获取不同的值。)
【问题讨论】:
-
Instance.Pad 是 IEnumerable
类型的吗?如果不是,这将不起作用,因为该方法将相同的 T 作为类型参数引用到 IEnumerable 和 IComparer 参数。
标签: c# collections lambda