27

すべてのグループから最初の行を選択して、重複する行を削除しようとしています。例えば

PK     Col1     Col2
1        A        B
2        A        B
3        C        C
4        C        C

返品したい:

PK     Col1     Col2
1        A        B
3        C        C

次のコードを試しましたが、うまくいきませんでした:

DataTable dt = GetSampleDataTable(); //Get the table above.
dt = dt.Select("SELECT MIN(PK), Col1, Col2 GROUP BY Col1, Col2);
4

5 に答える 5

6
dt = dt.AsEnumerable().GroupBy(r => r.Field<int>("ID")).Select(g => g.First()).CopyToDataTable();
于 2013-10-16T15:46:55.497 に答える
0

このソリューションは、Col1 で並べ替え、Col2 でグループ化します。次に、Col2 の値を抽出し、mbox に表示します。

var grouped = from DataRow dr in dt.Rows orderby dr["Col1"] group dr by dr["Col2"];
string x = "";
foreach (var k in grouped) x += (string)(k.ElementAt(0)["Col2"]) + Environment.NewLine;
MessageBox.Show(x);
于 2014-05-08T09:05:22.090 に答える