当一个结合中想根据某一个字段做去重方法时使用以下代码
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不好用的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
妖誩惑衆