比较两个字符串数组并返回相同的值

-2 c# arrays

我想比较两个string数组,只返回两个数组中包含的值.

例:

 string[] a = ["A", "B", "C", "D"];
 string[] b = ["A", "E", "I", "M", "Q", "U", "Y"];
Run Code Online (Sandbox Code Playgroud)

预期的结果将是

 string[] result = ["A"];
Run Code Online (Sandbox Code Playgroud)

fub*_*ubo 6

Contains() 应该在这里帮助

string[] a1 = { "A","B", "C", "D" };
string[] a2 = { "A", "E", "I", "M", "Q", "U" ,"Y" };

string[] result = a1.Where(a2.Contains).ToArray();
Run Code Online (Sandbox Code Playgroud)


Joh*_*ica 5

您可以使用LINQ Intersect:

var arrayA = new string[] { "A", "B", "C", "D" };
var arrayB = new string[] { "A", "E", "M", "Q", "U", "Y" };
var matchingItems = arrayA.Intersect(arrayB);
var firstMatchingItem = arrayA.Intersect(arrayB).First();
Run Code Online (Sandbox Code Playgroud)

请注意,结果Intersect会生成一个不同的(唯一)集合.