我有List<List<string>>
,当我尝试使用List<string>
进行搜索时,它不会返回任何结果。
有什么想法吗?
由于
List<List<string>> test = new List<List<string>>();
List<string> ff = new List<string>();
ff.Add("1");
ff.Add("ABC 1");
test.Add(ff);
ff = new List<string>();
ff.Add("2");
ff.Add("ABC 2");
test.Add(ff);
var result = test.Where(x=>x.Contains("ABC"));
//result.Count(); is 0
答案 0 :(得分:13)
您的列表中都没有包含元素“ABC”。
如果要查找包含“ABC”元素作为子字符串的列表,可以执行以下操作:
var result = test.Where(x => x.Any(y => y.Contains("ABC")));
答案 1 :(得分:0)
您的所有列表都不包含字符串“ABC”。当你使用包含函数时,它不搜索字符串,它只匹配整个字符串。如果要搜索部分字符串,则必须使用以下内容:
var result = test.Where(x => x.Where(y => y.Contains("ABC").Count() > 0));
答案 2 :(得分:0)
这是因为你正在做一个列表列表,并且在你的选择中不够深入。这样的事情会给你两个结果:
var result = test.Select(x => x.Where(y => y.Contains("ABC")));