如何从列表中的列表中获取差异,并删除该(主)列表项
本文关键字:列表 删除 获取 | 更新日期: 2023-09-27 17:49:26
我有一个List<List<string>>
变量,我想删除string[0]
中具有差异的List<string>
。我该怎么做呢?下面我将向您展示我想要实现的目标。
0, 1, 2,
+--+--+--+
0, |a |34|st|
+--+--+--+
1, |a |67|it| Delete this row because a is an duplicate.
+--+--+--+
2, |b |89|st|
+--+--+--+
谢谢,
您可以使用LINQ来选择由第一项区分的子列表:
var result = listOflists.GroupBy(l => l[0])
.Select(g => g.First())
.ToList();
您可以通过Distinct
和IEqualityComparer<T>
,因此:
class FirstItemComparer : IEqualityComparer<List<string>> {
public bool Equals(List<string> a, List<string> b) {
return a[0] == b[0];
}
public int GetHashCode(List<string> l) {
return l[0].GetHashCode();
}
}
...
items.Distinct(new FirstItemComparer())