查找IList1 二是使用Linq运算
本文关键字:string Linq 运算 IList 查找 | 更新日期: 2023-09-27 18:13:45
嗨,是否有使用Linq或lambda表达式或任何其他方法的内置方法,我们可以获得存在于IList<string[]>
中的记录,但不在IList<string[]>
中,反之亦然。我尝试了linq Except关键字,但它不起作用,当我在字符串[]上做操作时,它工作完美,而不是在IList<string[]>
上。
您需要为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());