2 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
DataTable如果您希望查詢返回,則需要加載另一個(gè)DataTable
所以使用下面的查詢,
DataTable dtResult = new DataTable();
dtResult.Columns.Add("Empolyee_CRC");
DataTable HasDuplicates = dt.AsEnumerable()
.GroupBy(g => g["Empolyee_CRC"])
.Where(c => c.Count() > 1)
.OrderBy(x => x.Key)
.Select(g => dtResult.LoadDataRow(new object[] { g.FirstOrDefault().Field<string>("Empolyee_CRC") }, false))
.CopyToDataTable();
或者
DataTable HasDuplicates = dt.AsEnumerable()
.GroupBy(g => g["Empolyee_CRC"])
.Where(c => c.Count() > 1)
.OrderBy(x => x.Key)
.Select(g => dtResult.LoadDataRow(new object[] { g.Key }, false))
.CopyToDataTable();
輸出:
編輯:
如果您想避免創(chuàng)建新的數(shù)據(jù)表,那么您可以簡(jiǎn)單地將您選擇的數(shù)據(jù)投影到列表中。
在if下面,您可以使用任何分開的條件,&&也可以按原樣使用。取決于你的需要。
if (dt.Rows.Count > 0 && dt.AsEnumerable().Select(x => x["Empolyee_CRC"]).Count() > 0)
{
var result = dt.AsEnumerable()
.GroupBy(g => g["Empolyee_CRC"])
.Where(c => c.Count() > 1)
.OrderBy(x => x.Key)
.Select(g => new { Empolyee_CRC = g.FirstOrDefault().Field<string>("Empolyee_CRC") })
.ToList();
}
輸出:

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
您的 LINQ 中似乎有錯(cuò)誤的 select 語句,請(qǐng)考慮以下示例:
DataTable HasDuplicates = dt.AsEnumerable()
.GroupBy(g => g["Empolyee_CRC"])
.Where(c => c.Count() > 1)
.Select(g => g
.OrderBy(r => r["Empolyee_CRC"])
.Select(r => r["Empolyee_CRC"])
.First())
.CopyToDataTable();
- 2 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報(bào)