C# 如果列包含重复值,则删除二维数组中的行
我正在处理一个有关Excel中二维数组的问题:如果单个列包含重复值,则可以删除行。如何在C中完成同样的事情 请看这个作为参考。仅当整行包含重复值时,它才会删除。我需要同样的东西,除了只有一列包含重复项时,该行才应该被删除 链接: 用法:C# 如果列包含重复值,则删除二维数组中的行,c#,multidimensional-array,duplicates,C#,Multidimensional Array,Duplicates,我正在处理一个有关Excel中二维数组的问题:如果单个列包含重复值,则可以删除行。如何在C中完成同样的事情 请看这个作为参考。仅当整行包含重复值时,它才会删除。我需要同样的东西,除了只有一列包含重复项时,该行才应该被删除 链接: 用法: [TestClass] public class UnitTest1 { [TestMethod] public void TestMethod1() { var array = new[,] { { 1, 2 }, {
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var array = new[,] { { 1, 2 }, { 3, 4 }, { 1, 2 }, { 7, 8 } };
array = array.ToEnumerableOfEnumerable()
.Distinct(new ListEqualityComparer<int>())
.ToList()
.ToTwoDimensionalArray();
}
}
您可能应该为具有相同第一个/特定值的列表构建一个自定义的EqualityComparer。不确定如何创建,您知道吗?甚至不确定这段代码是否有效,从这里借来的?问题是,SO的规则之一是,我们不应该将代码提供给那些对如何实现东西没有最低限度理解的人。生成相等比较器无非是生成一个具有正确重写的类,然后用工作逻辑填充方法,在本例中,这非常简单。如果这还不够,那么这可能不是你想要的。
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var array = new[,] { { 1, 2 }, { 3, 4 }, { 1, 2 }, { 7, 8 } };
array = array.ToEnumerableOfEnumerable()
.Distinct(new ListEqualityComparer<int>())
.ToList()
.ToTwoDimensionalArray();
}
}