【发布时间】:2016-10-18 04:41:15
【问题描述】:
我有 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。
like var extraInDest = dstDetails.Except(common) 导致 false 或 null
【问题讨论】:
-
你的字符串会一直是 CSV 格式吗?
-
始终以逗号分隔。
-
字符串 x = "CA ,WA";字符串 y = "CA,WA,NY"; var srcDetails = x.Split(','); var dstDetails = y.Split(','); var extraInSrc = srcDetails.Where(s => !dstDetails.Select(d => d.Trim().ToLower()).Contains(s.Trim().ToLower())).ToList(); if (extraInSrc.Count() !srcDetails.Select(d => d.Trim().ToLower()) .Contains(s.Trim().ToLower())).ToList(); }
-
非常有趣的代码块卡西。