查找类型列表是否包含在类型列表中

Tyr*_*ess 2 c# linq

是否有LINQ方法来确定是否,例如:

List<int> micro = new List<int>(){1,2,3,4,5};
Run Code Online (Sandbox Code Playgroud)

在...

List<List<int>> macro = new List<List<int>>();
Run Code Online (Sandbox Code Playgroud)

我可以foreach在宏上做一个循环并检查它是否包含至少一个包含List所有微项的东西(macro[0].Contains(1) && macro[0].Contains(2)...),但是有更多的C#方法吗?

Sel*_*enç 9

bool exists = macro.Any(x => micro.All(x.Contains));
Run Code Online (Sandbox Code Playgroud)

如果元素的顺序和数量是重要的使用 SequenceEqual

bool exists = macro.Any(x => x.SequenceEqual(micro));
Run Code Online (Sandbox Code Playgroud)

  • 是.请注意,这确实*不一定意味着,'macro`包含确切的`micro`对象.它"只是"意味着`macro`包含一个`IEnumerable`,它与`micro`具有相同的项目.此外,"IEnumerable"可能比"微"更多*项目. (2认同)