检查是否存在的最佳方法是什么List<List<int>>
包含一个List<int>
like:
List<List<int>> test = new List<List<int>>();
List<int> a = new List<int>{1,2,3,4,5,6};
List<int> b = new List<int>{1,2,3,4,5,6};
test.Add(a);
Debug.Log(test.Contains(b));
我知道Contains()
不检查contents of List<T>
,所以我正在寻找一种替代方法来确定等效性。
尝试这个:
test.Any(x => x.All(b.Contains));
这将返回true
但这并不完全正确。也会回归true
if b
包含的元素多于1,2,3,4,5,6
(例如7,8,9
, ETC)。要解决此问题,您可以尝试SequenceEqual
:
test.Any(x => x.OrderBy(y => y)
.SequenceEqual(b.OrderBy(z => z)));
如果你不想让它返回true
when b
是无序的(例如2,1,3,4,5,6
),然后不要使用OrderBy
;只需使用SequenceEqual
:
test.Any(x => x.SequenceEqual(b));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)