我有2个字符串数组/值x,y,我正在尝试获取不在x中的y值。我试图仅在x的所有值也都在y的情况下才获得此值。
string x = "CA ,WA";
string y = "CA,WA,NY";
var srcDetails = x.ToLower().Replace(" ", string.Empty).Split(',');
var dstDetails = y.ToLower().Replace(" ", string.Empty).Split(',');
var common = dstDetails.Intersect(srcDetails); //common in x,y
var destGreaterSrc= dstDetails.Except(srcDetails); //if y > x
var extraInDest = dstDetails.Except(common);
extraInDest是y中的额外值,不在x
中在上面的代码中,在dest中输出的额外值为NY。
我试图找到x的值可能不等于y的场景
string x = "CA ,NV";
string y = "CA,WA,NY";
我们如何将var extraInDest输出设为false。
类似于var extraInDest = dstDetails.Except(common)导致false或null
答案 0 :(得分:1)
最简单的一个是
var extraInDest = srcDetails.Except(dstDetails).Any()
? null
: dstDetails.Except(srcDetails);
答案 1 :(得分:1)
这应该很简单,如果你的比较应该总是得到一个布尔值,你应该使用它来代替
bool extraInDest = srcDetails.All(v=>dstDetails.Contains(v));