我正在处理一个有两个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]有了一个“真”。
答案 0 :(得分:2)
尝试一下:
var found = cArray1.All(x => cArray1.Count(y => y == x) <= cArray2.Count(y => y == x));