我在Visual Studio中有一个数据库表,该数据库表是使用C#脚本制作的。该表是DataRow
类型。在此表中,有时两列中的行具有完全相同的值,但其他列中的行可以不同。我只想保留这些行之一,所以我想删除其他相同的行。有谁知道我该怎么做?
我曾想过遍历表,但是我真的不知道如何在遍历时删除行,因为我是Visual Studio和C#的初学者。
该表如下所示:
在此示例中,第二行和第三行在指定列中相同,因此我想删除其中的一行
答案 0 :(得分:1)
您可以使用GroupBy获取第一个匹配元素。
var table = new DataTable();
table.Columns.Add("VariableRowC", typeof(string));
table.Columns.Add("VariableColumn", typeof(string));
table.Columns.Add("Whatever", typeof(string));
table.Rows.Add("r140","c080","A");
table.Rows.Add("r150","c080","B");
table.Rows.Add("r150","c080","C");
table.Rows.Add("r010","c080","D");
table.Rows.Add("r020","c080","E");
table.Rows.Add("r030","c080","F");
table.Rows.Add("r060","c080","G");
table.Rows.Add("r140","c080","H");
table.Rows.Add("r010","c080","I");
var result = table.AsEnumerable().GroupBy(d => d.Field<string>("VariableRowC")).Select(e => e.FirstOrDefault());