我想说,
class A
{
string[] values;
}
class B
{
string[] values;
}
我有2个对象,
var a= new A{ values ={"a","b","c"}}
var b= new A{ values ={"b","c"}}
如何确保B的所有值都能以有效的方式存在于A.values中?
答案 0 :(得分:3)
使用Enumerable.Except从b
中获取a
中不存在的唯一项目(这是一项设置操作,因此非常有效)。然后使用Enumerable.Any检查是否没有此类项目。如果b
中没有a
中没有的唯一项目,则b
中的所有项目都存在于a
中:
bool allExist = !b.values.Except(a.values).Any();
答案 1 :(得分:2)
您想检查A组是否包含B组。 为此,使用Except生成两组之间的集合差异,并检查差异是否包含任何元素。
var contains = ! b.values.Except(a.values).Any();
如果你想象一个维恩图,这些事情会更容易。
答案 2 :(得分:0)
已编辑:
List<string> listA = new List<string>(a);
List<string> listB = new List<string>(b);
var listCommon = listA.Where(listB.Contains);