查找IList1 二是使用Linq运算

本文关键字:string Linq 运算 IList 查找 | 更新日期: 2023-09-27 18:13:45

嗨,是否有使用Linq或lambda表达式或任何其他方法的内置方法,我们可以获得存在于IList<string[]>中的记录,但不在IList<string[]>中,反之亦然。我尝试了linq Except关键字,但它不起作用,当我在字符串[]上做操作时,它工作完美,而不是在IList<string[]>上。

查找IList<string[]>1 <string[]>二是使用Linq运算

您需要为string[]实现IEqualityComparer,默认情况下数组通过引用进行比较。即使数组中的元素相同,引用也是不同的。因此,Except方法将它们视为不同的。

class ArrayComparer : IEqualityComparer<string[]>
{
    public bool Equals(string[] x, string[] y)
    {
        // do your comparison here
    }
    public int GetHashCode(string[] obj)
    {
        // write your hash algorithm 
    }
}

你可以通过传递Except方法来使用这个比较器,像这样:

var result = list1.Except(list2, new ArrayComparer());