【发布时间】:2020-02-06 13:49:11
【问题描述】:
我想检查字符串是否包含另一个字符串。 例如:我在一个列表中有“程序管理”字符串,在另一个列表中有“计算机程序”字符串。结果,我想返回“计算机程序”。我已经尝试过以下事情
List<string> strlist1 = new List<string>();
strlist1.Add("program mangement");
strlist1.Add("english language");
List<string> strlist2 = new List<string>();
strlist2.Add("computer program");
strlist2.Add("computer");
strlist2.Add("test");
foreach(var keys in strlist2)
{
var result = strlist1.Where(x=>x.Contains(keys)).FirstOrDefault();
Console.WriteLine(result);
}
我希望结果为“计算机程序”,因为程序字包含在第二个列表中。但它没有返回任何结果。任何人都可以建议如何返回所需的结果..
【问题讨论】:
-
您能否澄清一下预期的输出是什么,以及这个 sn-p 的输出与它有何不同?
-
使用 String.Split 和 String.Contains...
-
当你做 strlist1.Where(x=>x.Contains(keys)).FirstOrDefault();你基本上是在说“计算机程序是否包含计算机程序分析”,这显然是错误的......当你做另一个时 strlist1.Where(x=>keys.Contains(x)).FirstOrDefault();现在你颠倒了情况,现在说“计算机程序分析是否包含计算机程序”,这显然是正确的。
-
更新了问题@Mureinik