欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

完美解决c# distinct不好用的问题

程序员文章站 2022-06-03 14:59:07
当一个结合中想根据某一个字段做去重方法时使用以下代码iqueryable 继承自ienumerable先举例:该扩展方法贴出:补充知识:c# – .distinct()调用不过滤我正在尝试使用asen...

当一个结合中想根据某一个字段做去重方法时使用以下代码

iqueryable 继承自ienumerable

先举例:

该扩展方法贴出:

补充知识:c# – .distinct()调用不过滤

我正在尝试使用asenumerable将entity framework dbcontext查询拉入ienumerable< selectlistitem>.这将用作填充视图中下拉列表的模型属性.

但是,尽管调用了distinct(),但每个查询都会返回重复的条目.

为了使distinct生效,如果类型是自定义类型,则序列必须包含实现iequatable接口的类型的对象.

正如here所述:

distinct returns distinct elements from a sequence by using the

default equality comparer to compare values.

一个解决方法,为了避免上述情况,因为我可以得出结论,你不需要整个对象而不是它的一个属性,就是将序列的每个元素投影到division,然后创建orderby并调用distinct :

有关此问题的进一步文档,请查看here.

以上这篇完美解决c# distinct不好用的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

相关标签: c# distinct