2
以下C#代碼需要一個包含多個列的大數據表和一個包含2個列名的數組。它會給兩個行提供一個新的數據表,其中有兩個重複的行提供了職員編號&技能。 這太具體了,我需要提供任何數量的字段作爲groupby。 有人可以幫助我嗎?參數化LINQ GroupBy
string[] excelField = new string[0]; // contains a list of field name for uniquness
excelField[0] = "staff No";
excelField[1] = "skill";
DataTable dataTableDuplicateRows = new DataTable();
dataTableDuplicateRows.Clear();
dataTableDuplicateRows.Columns.Clear();
foreach (string fieldName in excelField)
{
dataTableDuplicateRows.Columns.Add(fieldName);
}
var duplicateValues = dataTableCheck.AsEnumerable()
.GroupBy(row => new { Field0 = row[excelField[0]], Field1 = row[excelField[1]] })
.Where(group => group.Count() > 1)
.Select(g => g.Key);
foreach (var duplicateValuesRow in duplicateValues)
{
dataTableDuplicateRows.Rows.Add(duplicateValuesRow.Field0, duplicateValuesRow.Field1);
}
另外,看到這一點:http://stackoverflow.com/a/8759958/861716 –