5

我有 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();

相反,我遍历 enterItems 并使用Array.IndexOf(allPossible, x) == -1 return false.

将返回的顶部数据样本将返回 true...但是,如果 enterItems 数组中只有 1 个元素不在 allPossible 数组中,则将返回 false。IE。

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

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

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

4

1 回答 1

16

采用Enumerable.Except

bool allInEntered = !enteredItems.Except(allPossible).Any();
于 2013-09-10T21:30:14.620 回答