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