4

我有一个List<List<string>>变量,我想删除List<string>with distincts in 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|
   +--+--+--+

谢谢,

4

2 回答 2

4

您可以使用 LINQ 选择按第一项不同的子列表列表:

var result = listOflists.GroupBy(l => l[0])
                        .Select(g => g.First())
                        .ToList();
于 2012-12-25T20:59:24.343 回答
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())
于 2012-12-25T20:58:12.250 回答