C# 将两个字符串拆分为列表<;字符串>;并使用Linq进行比较
我有一个名为“Color”的字符串属性的对象列表。我需要使用空格分隔符将字符串拆分为一个列表,并将该列表与另一个列表进行比较,以查看是否有任何包含的字符串使用Linq匹配C# 将两个字符串拆分为列表<;字符串>;并使用Linq进行比较,c#,linq,C#,Linq,我有一个名为“Color”的字符串属性的对象列表。我需要使用空格分隔符将字符串拆分为一个列表,并将该列表与另一个列表进行比较,以查看是否有任何包含的字符串使用Linq匹配 string searchString = "I like sand"; List<string> searches = searchString.Split(' ').ToList(); //Determine if matches exists anywhere between the 2 string
string searchString = "I like sand";
List<string> searches = searchString.Split(' ').ToList();
//Determine if matches exists anywhere between the 2 strings using linq
List<myObject> obj = myObjectList.Where(x=> searches.Any(a=>x.Color.Contains(a))).Any();
非常感谢您的帮助。尝试拆分两个字符串,然后使用LINQs
Intersect()
获取两个字符串中的拆分,并使用Any()
检查是否存在此类相交:
var first = "I like sand";
var second = "san dune";
var result = first.Split(' ').Intersect(second.Split(' ')).Any();
尝试拆分两个字符串,然后使用LINQs
Intersect()
获取两个字符串中的拆分,并使用Any()
检查是否存在此类相交:
var first = "I like sand";
var second = "san dune";
var result = first.Split(' ').Intersect(second.Split(' ')).Any();
我建议在
null
上拆分,而不是在空白字符上拆分,这样可以在所有空格上拆分。您还可以将其提取到函数中:
private static bool CompareStrings(string a, string b)
{
return a.Split(null).Intersect(b.Split(null)).Any();
}
那么你可以这样称呼它:
bool result = CompareStrings("I like sand", "sand dune");
bool result2 = CompareStrings("I like sand", "Ice cream");
请记住,此解决方案区分大小写,因此Sand
和Sand
不匹配
Fiddle我建议在
null
上拆分,而不是在空白字符上拆分,这样就可以在所有空格上拆分。您还可以将其提取到函数中:
private static bool CompareStrings(string a, string b)
{
return a.Split(null).Intersect(b.Split(null)).Any();
}
那么你可以这样称呼它:
bool result = CompareStrings("I like sand", "sand dune");
bool result2 = CompareStrings("I like sand", "Ice cream");
请记住,此解决方案区分大小写,因此Sand
和Sand
不匹配
Fiddle使用
Intersect()
和Any()
使用Intersect()
和Any()
这很有效,谢谢!我之前试过Intersect,但一定是用错了。这很有效,谢谢!我之前试过Intersect,但肯定是用错了。谢谢你的回答和建议,我给了Adrian答案,因为看起来他是第一个跳进去的。一如既往的好建议,谢谢!谢谢你的回答和建议,我给了阿德里安答案,因为看起来他是第一个跳进去的。一如既往的好建议,谢谢!