2
我相信这与this类似,但我无法应用相同的解决方案。从列表中删除基于特定列的重复行
我有几个列的列表:
public struct InfoForGraph
{
public float a{ get; set; }
public double b{ get; set; }
public double c { get; set; }
public double d { get; set; }
public double e { get; set; }
public double f { get; set; }
public double g { get; set; }
public double h { get; set; }
public double i { get; set; }
public double j { get; set; }
}
我想删除从这个名单中的重复行,但只有当特定字段匹配。如果我对整个桌子做了区分,这些线条不会被删除。另外,我不在乎重复的行,我只想保留其中的一个。
输入:
2.67|1.84|420|400|1608039|808|3117|1|2|3|4
2.68|1.84|420|401|1608039|808|3269|1|2|3|4
输出预计:
2.67|1.84|420|400|1608039|808|3117|1|2|3|4
所以,如果列1,2,5,6,8,9,10具有相同的价值,我应该只保留首先返回(删除第二,第三,所有这些字段匹配。)
任何想法?
我应该提到,为了完整起见,你应该检查'GetHashCode()'和'Equals()'中的空对象和其他类似的异常/错误。 – Sach
是不是两个应该相等的对象会得到不同的哈希码?例如:{b = 1,c = 2}和{b = 1,c = 3} –
@MaorVeitsman我简化了OP的条件,所以在我的例子中两个对象是相等的,如果'Obj1.b == Obj2.b && Obj1 .c == Obj2.c'。所以在这些条件下,您的示例对象并不相同。 – Sach