可能重复:
LINQ:检查一个数组是否是另一个数组的子集
我正在尝试确定是否有一种方法可以使用 LINQ 来查找子集数组中的每个元素是否都在超集数组中。例如这个超集:
{'w','o','k','r','d','o'}
以下将是一个有效的子集:
{'o','k','w','r'}
虽然这些是无效的:
{'o','k','w','r','s'}
{'w','o','k','r','d','o','s'}
实际的超集是我在内存中的一个字符数组。实际子集是数据库表中的一个值。我正在尝试使用 LINQ to EF 从表中获取满足此条件的所有值。这是我到目前为止所尝试的:
char[] letterArray = letters.ToCharArray();
return we.Words.Where(t => letterArray.Join(t.Word.ToCharArray(),
f => f,
s => s, (f, s) => new { s }).Count() == t.Word.Length
).Select(t => t.Word).ToArray();
但是当我运行它时,我得到了错误:
'无法创建'System.Char'类型的常量值。此上下文仅支持原始类型(“例如 Int32、String 和 Guid”)。
有没有办法解决这个错误?有没有更简单的方法来做我在这里尝试的事情?