在c#中是否有任何简单的方法来检查列表是否包含另一个列表?这是一个例子,我有:
var list1 = new List<int>() {1, 2, 3, 4, 5, 6,};
和第二个 var list2 = new List<int>() {5, 6};
此列表是第一个列表的一部分,因此它应返回true .
var list1 = new List<int>() {1, 2, 3, 4, 5, 6,};
和 var list3 = new List<int>() {1, 3};
应该返回false .
它不是要检查第一个列表中的所有元素是否都存在于第二个列表中,而是关于顺序 . 它必须具有相同的顺序 .
2 回答
这对我有用:
此代码使用
Enumerable.Range
遍历sequence
中可能与subsequence
相同的每个可能起点,并检查sequence
与此位置subsequence
相同大小的段是否实际上等于subsequence
.所以对于这段代码:
我明白了:
感谢@GeorgeVovos和@Enigmativity指出第一个解决方案中的问题 .
例