我有一个List<List<string>>
变量,我希望在List<string>
中删除带有区别的string[0]
。我怎样才能做到这一点?在这里,我向您展示我正在努力实现的目标。
0, 1, 2,
+--+--+--+
0, |a |34|st|
+--+--+--+
1, |a |67|it| Delete this row because a is an duplicate.
+--+--+--+
2, |b |89|st|
+--+--+--+
谢谢,
答案 0 :(得分:4)
您可以使用LINQ选择不同于第一项的子列表列表:
var result = listOflists.GroupBy(l => l[0])
.Select(g => g.First())
.ToList();
答案 1 :(得分:0)
您可以传递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())