只是想检查是否有办法做到不同的通过多列。在此先感谢!!!

顺便说一句,我发现一个伟大的皇宫的扩展 在这里, 但需要一些指导使用多个列

有帮助吗?

解决方案

好了,你可以先做投影:

var qry = db.Customers.Select(cust => new {cust.ID, cust.Name, cust.Region})
                    .Distinct();

或者在查询语法:

var qry = (from cust in db.Customers
          select new {cust.ID, cust.Name, cust.Region}).Distinct();

这办?

其他提示

相反的鲜明可以使用GROUPBY,然后选择每一组的最顶部的记录

如何通过LINQ没有匿名多个字段鲜明类型

  
    

由邻在objEntity返回

              group o by new
              {
                  o.Field1,
                  o.Field2,
                  o.Field3,
                  o.Field4,
                  o.Field5
              } into grp
              select grp.FirstOrDefault();
  

这会给你的 EntityObject 而不是在 AnonymousType

这是“由多列不同的”你真正的意思是一组由。

当你要求不同,这意味着你通过使用在表中的所有列让所有的不同的行,或的基团。

如果你想只得到不同的分组为列的子集,然后通过你的子句中使用的一组,由指定的列组。然后,选择基团,因为你只需要一组的每个组密钥。

另一种简单的方法是创建一个独特的字符串。

var result = collection.DistinctBy(c => c.Field1 + "." + c.Field2 + "." + c.Field3);

VAR查询=(来自囊肿在db.Customers选择新的{cust.ID,cust.Name,cust.Region})。的GroupBy(X =>新的{x.Name,x.Region})。选择(Z => z.OrderBy(I => i.cust).FirstOrDefault())ToList();

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top