首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么没有Linq方法通过谓词返回不同的值?

为什么没有Linq方法通过谓词返回不同的值?
EN

Stack Overflow用户
提问于 2009-02-06 11:51:53
回答 3查看 14.9K关注 0票数 51

我想要在列表中获得不同的值,而不是通过标准的相等比较。

我想做的是这样的:

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
}

但这看起来确实更像是写了一些一开始就应该存在的东西。

有人知道为什么这里没有这种方法吗?

我是不是遗漏了什么?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/520030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档