我想要在列表中获得不同的值,而不是通过标准的相等比较。
我想做的是这样的:
return myList.Distinct( (x, y) => x.Url == y.Url );
我不能,Linq中没有可以做到这一点的扩展方法--只有一个接受IEqualityComparer
的方法。
我可以用这个来解决这个问题:
return myList.GroupBy( x => x.Url ).Select( g => g.First() );
但这看起来很混乱。它也不能做同样的事情-我只能在这里使用它,因为我有一个单一的密钥。
我也可以添加我自己的:
public static IEnumerable<T> Distinct<T>(
this IEnumerable<T> input, Func<T,T,bool> compare )
{
//write my own here
}
但这看起来确实更像是写了一些一开始就应该存在的东西。
有人知道为什么这里没有这种方法吗?
我是不是遗漏了什么?
https://stackoverflow.com/questions/520030
复制相似问题