如何比较不同数组中的元素或如何制作if ()
块?
如果string[] data = { "a", "b" };
是具有信息的数组。
string[] b = { "a" };
-检查数组。
我必须检查具有b
数组的元素是否具有数组data
。
如果在b
中所有元素都像在data
中一样,我会做某事......
如果string[] c = { "a", "b", "c", "d" };
-不一样,因为data
没有“ c”和“ d”
我尝试在块Intersect().Any()
中使用if
,在c
的情况下不起作用,因为Any
找到第一个严格的元素
答案 0 :(得分:1)
您可以使用"Ok. I'll repeat this name: $Name"
+ !Except
:
Any
或在大型数组中效率可能较低,但可读性可能更高:
bool containsAll = !data.Except(yourArray).Any();
答案 1 :(得分:0)
如果data
仅用于查找,则可以改用HashSet
:
HashSet<string> data = new HashSet<string>() { "a", "b" };
if (b.All(data.Contains))
{
// All the strings in b are in data
}
否则,您可以按照@mjwills的建议使用Except
:
if (!b.Except(data).Any())
{
// All the strings in b are in data
}