检查字符串数组元素仅包含另一个数组中的元素

时间:2013-09-10 21:28:37

标签: c# linq

我有2个阵列

string[] allPossible = {"ID","Age","FirstName","LastName","Gender","Kudos"};
string[] enteredItems = {"Age", "LastName"};

我想检查数组enteredItems只包含在数组中找到的元素 allPossible。我想用LINQ做这个。

我看了

allPossible.Any(el => enteredItems .Contains(el));

allPossible.Intersect(enteredItems).Any();

相反,我循环通过enteredItems并使用Array.IndexOf(allPossible, x) == -1 return false

返回的顶级数据样本将返回true ... 但是,如果在enteredIisibles数组中只有1个元素不在allPossible数组中 会有一个假的。即。

string[] allPossible = {"ID","Age","FirstName","LastName","Gender","Kudos"};
string[] enteredItems = {"Age", "Geeky"};

将是错误的,因为''allIossible'中不存在'enteredItems'数组中的1个元素 元件。

必须有LINQ查询才能执行此操作。

1 个答案:

答案 0 :(得分:16)

使用Enumerable.Except

bool allInEntered = !enteredItems.Except(allPossible).Any();