Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq Distinct()不工作_C#_Linq - Fatal编程技术网

C# Linq Distinct()不工作

C# Linq Distinct()不工作,c#,linq,C#,Linq,Distinct()不工作。它显示所有重复的值。 我寻找一个解决办法,但只是变得更加困惑。我试过这个: var categories = db.Orders.OrderBy(c => c.Item1).ToList().Distinct(); var categories = db.Orders.Distinct().OrderBy(c => c.Item1).ToList(); 有没有一种简单快捷的方法来实现这一点呢?使用GroupBy而不是Distinct@Dennis\E不太

Distinct()不工作。它显示所有重复的值。 我寻找一个解决办法,但只是变得更加困惑。我试过这个:

var categories = db.Orders.OrderBy(c => c.Item1).ToList().Distinct();
var categories = db.Orders.Distinct().OrderBy(c => c.Item1).ToList();

有没有一种简单快捷的方法来实现这一点呢?

使用
GroupBy
而不是
Distinct

@Dennis\E不太可能,一个会在数据库中进行比较,另一个会在C#中进行比较。我使用了GroupBy并让它工作起来(见更新的答案)。@MikeHowe
Distinct
并不复杂。它做的正是它应该做的,而且工作得很完美。你只是不想得到不同的项目,尽管没有在你的问题中讨论这一点。实际上,您希望使用该项的单个属性作为其标识来获取不同的项。这是一个完全不同的问题。这就是为什么你不应该在你的问题中只说“它不起作用”,而应该解释,具体地说,正在发生什么以及你想要发生什么。如果你这么做了,答案就很简单了。我想我不明白Linq Distinct是做什么的。我认为这就像普通的SQL语句一样。我有一个类似的问题,他要求一个快速而不复杂的解决方案。groupBy“some value”快速且易于实现。一个新的比较器并不是那么“容易”@downvorters事实上,
GroupBy(…).Select(g=>g.First())
可能会工作。。。(顺便说一句:这不是一个答案,它只能是一个评论)是的,它会起作用,但如果你愿意,请继续向下投票it@Vland,不知什么原因,我直到现在才看到你的答案。至少可以说,我现在很困惑。“我应该删除这个问题吗?”MikeHowe,你告诉我。如果此答案有帮助,请标记为正确。否则就忽略它