【问题标题】:Check if elements of a Char Array appear in another Char Array [duplicate]检查字符数组的元素是否出现在另一个字符数组中[重复]
【发布时间】:2020-04-16 02:38:12
【问题描述】:

我正在解决我有两个字符数组的问题,如下所示:

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

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

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

上述逻辑在大多数情况下都可以正常工作,但“Distinct”命令会导致一些问题。如果我们考虑我在这里提到的两个数组,那么 'found' 应该是 'true' 仅当字符 [p, a, n, d, a] 出现在 cArray2 中时。但是现在,由于“不同”,我得到了 [p, a, n, d] 的“真”。

【问题讨论】:

  • var found = cArray1.GroupBy(c1 => c1).All(g => cArray2.Count(c2 => c2 == g.Key) >= g.Count()) ?
  • 是的..这也很有效。非常感谢!

标签: c# arrays char


【解决方案1】:

试试这个:

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

【讨论】:

  • 哦,这成功了!非常感谢!
猜你喜欢
  • 2019-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-07
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 2021-05-22
相关资源
最近更新 更多