我们如何检查一个数组是否包含#中另一个数组的一个或多个元素?

pal*_*hta 7 .net c#

我有一个字符串数组:例如:

string [] names ={"P","A","B","G","F","K","R"}
Run Code Online (Sandbox Code Playgroud)

我有另一个数组:

string [] subnames={"P","G","O"}
Run Code Online (Sandbox Code Playgroud)

我们如何检查names数组是否包含子数组数组的任何元素.

在上面的例子中,名字中​​有"P"和"G".

Joe*_*ton 22

这是一个Linq解决方案,可以满足您的需求:

names.Any(x => subnames.Contains(x))
Run Code Online (Sandbox Code Playgroud)


Fr3*_*dan 11

绝对最简单的方法是使用Enumerable.Intersect方法.然后我们对结果的Any方法

bool containsValues = names.Intersect(subnames).Any();
Run Code Online (Sandbox Code Playgroud)


Mac*_*iej 7

这也可以:

bool result = names.Any(subnames.Contains);
Run Code Online (Sandbox Code Playgroud)

编辑

此代码可能看起来不完整但实际上有效(方法组方法).

  • 这是有效的代码.它使用方法组方法.请在评论前检查它是否运行. (8认同)