C# 将字符串列表与另一个字符串进行比较
我有一个长字符串,看起来像:C# 将字符串列表与另一个字符串进行比较,c#,linq,C#,Linq,我有一个长字符串,看起来像:“item1,item7,item9”等等。 然后我有一个列表,看起来像: "item2", "item3", "item9" 我想运行一个检查,看看是否有任何列表字符串与长字符串中的任何内容匹配。我可以使用foreach循环,但我认为必须有一个简单的LINQ表达式,但我似乎不太正确。您可以尝试以下方法: var isContained = list.Any(x=>stringValue.Contains(x)); 其中,list是字符串列表,stringV
“item1,item7,item9”
等等。
然后我有一个列表,看起来像:
"item2",
"item3",
"item9"
我想运行一个检查,看看是否有任何列表字符串与长字符串中的任何内容匹配。我可以使用foreach循环,但我认为必须有一个简单的LINQ表达式,但我似乎不太正确。您可以尝试以下方法:
var isContained = list.Any(x=>stringValue.Contains(x));
其中,list
是字符串列表,stringValue
是您拥有的字符串
在上面的代码中,我们使用Any
方法,该方法查看列表中是否有任何元素使我们提供的谓词为true
。谓词有一个列表项作为输入,并检查该项是否包含在stringValue
中。如果是,则返回true。否则为false。string longString=“item1,item7,item9”;
string longString = "item1,item7,item9";
List<string> myList=new List<string>(new string[]{"item2","item3","item9"});
if (myList.Any(str => longString.Contains(str)))
{
Console.WriteLine("success!");
}
else
{
Console.WriteLine("fail!");
}
List myList=新列表(新字符串[]{“item2”、“item3”、“item9”});
if(myList.Any(str=>longString.Contains(str)))
{
Console.WriteLine(“成功!”);
}
其他的
{
控制台。WriteLine(“失败!”);
}
那么:
// Set up the example data
String searchIn = "item1, item7, item9";
List<String> searchFor = new List<String>();
searchFor.Add("item2");
searchFor.Add("item3");
searchFor.Add("item9");
var firstMatch = searchFor.FirstOrDefault(p => { return -1 != searchIn.IndexOf(p); });
// firstMatch will contain null if no item from searchFor was found in searchIn,
// otherwise it will be a reference to the first item that was found.
//设置示例数据
String searchIn=“item1、item7、item9”;
List searchFor=新列表();
搜索。添加(“第2项”);
搜索。添加(“第3项”);
搜索。添加(“第9项”);
var firstMatch=searchFor.FirstOrDefault(p=>{return-1!=searchIn.IndexOf(p);});
//如果在searchIn中未找到searchFor中的任何项,firstMatch将包含null,
//否则,它将引用找到的第一个项目。
string.Format添加了什么?您会说“我似乎不正确”。经常显示你的尝试是揭示你的真实意图(例如你真的只在乎有匹配,还是你想知道匹配字符串的值)@user3611219欢迎你,伙计!我很高兴我帮了忙。不客气。我对接受的解决方案投了更高的票,因为它通过提供“检查”更忠实地回答问题,并使用String.Contains(String)
方法,这是一个比我更好的选择。