如何确定列表A是否以相同的顺序包含列表B中的所有元素?
列表A可以具有列表B不具有的其他元素,但必须按照列表B具有它们的顺序包含列表B的所有元素.
实施例1(A组结尾...,4,0, 6):
List A: List B:
5 2
9 3
2 4
3
4
0
6
Run Code Online (Sandbox Code Playgroud)
这应该返回True.
实施例2(A组结尾...,0,4,6):
List A: List B:
5 2
9 3
2 4
3
0
4
6
Run Code Online (Sandbox Code Playgroud)
这应该返回False.
我从JonSkeet中找到了这个答案,看看列表A是否包含列表B中的所有元素,但这并不要求它们具有相同的顺序.
是否有任何优雅的方式c#来检查是否List<T>包含一个List<T>类似的子string.Contains(string)?
比方说,例如我想测试List A是否包含ListB
List<int> A = new List<int>{ 1, 2, 3, 4, 3, 4, 5 };
List<int> B = new List<int>{ 3, 4, 5 };
Run Code Online (Sandbox Code Playgroud)
重要的是所有元素必须完全匹配.
我知道我可能会做类似的事情
bool Contains(List<Sampletype> source, List<Sampletype> sample)
{
// sample has to be smaller or equal length
if (sample.Count > source.Count) return false;
// doesn't even contain first element
if (!source.Contains(sample[0])) return false;
// get possible starts
// see https://stackoverflow.com/a/10443540/7111561
int[] possibleStartIndexes = source.Select((b, i) …Run Code Online (Sandbox Code Playgroud)