从二维列表中删除重复的行

本文关键字:删除 列表 二维 | 更新日期: 2023-09-27 18:25:56

我有一个二维字符串列表(List<List<string>>)。

有没有一种简单的方法可以删除重复的行?这就是相等的CCD_ 2。

从二维列表中删除重复的行

基于SequenceEqual:构建自定义IEqualityComparer

class ListComparer : IEqualityComparer<List<string>>
{
    public bool Equals(List<string> x, List<string> y)
    {
        if (x == y) 
           return true ; 
       if (x == null || y == null) 
           return false ;
        // Order if you need
        return x.SequenceEqual(y) ; 
    }
    public int GetHashCode(List<string> obj)
    {
        if (obj == null)
           return 0;
        unchecked
        {
           return obj.Select(e => e.GetHashCode()).Aggregate(17, (a, b) => 23 * a + b);
        }
    }
}

使用比较器应用Distinct():

List<List<string>> original = ... 
var sortedListOfList = original.Distinct(new ListComparer()).ToList() ; 

您没有指定是否应该对列表进行排序比较。

如果没有订购,它应该是:

List<List<string>> source = *yourLists*;
var sortedList = source.Distinct();