字符串包含使用列表返回的false

时间:2019-03-01 18:31:11

标签: c#

试图理解为什么此代码无法正常工作。 包含似乎无法使用列表

var a = new List<string>() { "QHIDETH_1" };
var b = new List<string>() { "QHIDETH" };

var res = b.Where(x => a.Contains(x));
var res2 = a.Where(x => b.Contains(x));

Console.WriteLine(res.Count() + " " +res2.Count()+ " " + "QHIDETH_1".Contains("QHIDETH") );

输出为“ 0 0 True”

https://dotnetfiddle.net/PwTkMH

2 个答案:

答案 0 :(得分:2)

那是正确的。列表a不包含值为“ QHIDETH”的元素。 列表a确实包含一个元素,该元素是一个包含“ QHIDETH”(是子字符串)的字符串。

您在容器中缺少一个级别。

将其更改为以下代码即可使用:

var res = b.Where(x => a.Any(elementOfA => elementOfA.Contains(x)));

希望有帮助!

答案 1 :(得分:0)

执行kubectl config view -o=jsonpath="{.contexts[*].name}" | tr " " "\n" 时,您正在列表a.Contains(x)中搜索包含字符串a的字符串,并且它们必须完全匹配。对于部分比赛,我认为您正在寻找

x