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