检查一个字符数组的元素是否出现在另一个字符数组中

时间:2020-04-16 02:38:12

标签: c# arrays char

我正在处理一个有两个Char数组的问题,如下所示:

cArray1 = ['p','a','n','d','a']
cArray2 = ['a','v','d','e','r','e','n','j','j','a','v','h' ,“ v”,“ p”]

我需要检查cArray2中是否存在cArray1的所有元素。我使用Linq在C#中编写了一个解决方案:

var found = cArray1.Select(c => char.ToUpper(c)).Distinct().All(c => cArray2.Contains(c))

上面的逻辑在大多数情况下都可以正常工作,但是'Distinct'命令引起了一些问题。如果我们考虑我在这里提到的两个数组,则“找到”应该为“真”,仅当字符[p,a,n,d,a]出现在cArray2中。但是现在,由于“不同”,我对[p,a,n,d]有了一个“真”。

1 个答案:

答案 0 :(得分:2)

尝试一下:

var found = cArray1.All(x => cArray1.Count(y => y == x) <= cArray2.Count(y => y == x));