10

複数の列で区別する方法があるかどうかを確認したかっただけです。前もって感謝します!!!

ところで、私はここで素晴らしいLINQ拡張機能を見つけましたが、複数の列に使用するにはいくつかのガイダンスが必要です

4

5 に答える 5

31

さて、最初に射影を行うことができます:

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();

それは?

于 2009-04-01T18:54:52.070 に答える
11

Distinct の代わりに Groupby を使用して、各グループの最上位レコードを選択できます

匿名型を使用せずに複数のフィールドで LINQ を区別する方法

objEntity の o から戻る

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

これにより、 AnonymousTypeではなくEntityObjectが得られます

于 2011-05-27T08:37:41.107 に答える
5

「複数の列で区別する」とは、実際にはグループ化を意味します。

個別を要求すると、すべての個別の行、またはテーブル内のすべての列を使用してグループを取得していることを意味します。

列のサブセットに対して個別のグループ化のみを取得する場合は、句で group by を使用して、グループ化する列を指定します。次に、各グループに 1 セットのキーのみが必要なため、グループを選択します。

于 2009-04-01T18:54:32.510 に答える
1

var qry = (db.Customers の cust から新しい {cust.ID, cust.Name, cust.Region} を選択します).GroupBy(x => 新しい { x.Name,x.Region}).select(z => z .OrderBy(i => i.cust).FirstOrDefault()).ToList();

于 2015-09-09T14:51:06.320 に答える