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)
方法,这是一个比我更好的选择。