LINQ to DataSet,由多列区分

Gan*_*sha 10 linq distinct linq-to-dataset

只是想检查是否有多种方法可以区分多个列.提前致谢!!!

顺便说一句,我在这里找到了一个很棒的LINQ扩展,但需要一些指导才能将它用于多列

Mar*_*ell 31

好吧,你可以先做投影:

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

或者在查询语法中:

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

那呢?


Pra*_*eep 11

您可以使用Groupby,然后选择每个组的Top Most记录,而不是Distinct

LINQ如何在没有匿名类型的情况下由多个字段区分

在objEntity中从o返回

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

这将为您提供EntityObject而不是AnonymousType


cas*_*One 5

通过"多列不同",你真正的意思是一个群体.

当您要求distinct时,这意味着您将获得所有不同的行,或者使用表中的所有列获取组.

如果只想为列的子集获取不同的分组,请在子句中使用group by,指定要分组的列.然后,选择组,因为您只需要每组的一组键.