Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 查询包含一个或多个字符串的字符串_C#_Asp.net_Linq - Fatal编程技术网

C# 查询包含一个或多个字符串的字符串

C# 查询包含一个或多个字符串的字符串,c#,asp.net,linq,C#,Asp.net,Linq,我在这里找到了一个例子: var foo = things.Where(data => myList.Contains(data.Title)); 但是,这是精确的字符串匹配。我只对data.Title.ToLower()包含列表ToLower()中的任何字符串感兴趣 假设列表中有苹果、图书时钟 数据。标题是例如:苹果杰克,读书俱乐部,发条书,这些都很好。但爪子和食物、咔嗒声、应用基础知识都是不被接受的 您希望查找标题可能包含的每个项目(忽略大小写): 如果标题tolower包含一个或多

我在这里找到了一个例子:

var foo = things.Where(data => myList.Contains(data.Title));
但是,这是精确的字符串匹配。我只对data.Title.ToLower()包含列表ToLower()中的任何字符串感兴趣

假设列表中有苹果、图书时钟


数据。标题是例如:苹果杰克,读书俱乐部,发条书,这些都很好。但爪子和食物、咔嗒声、应用基础知识都是不被接受的

您希望查找
标题
可能包含的每个项目(忽略大小写):


如果标题tolower包含一个或多个项目tolower,保留它,否则丢弃。虽然这很酷,但我发现Gert的答案更容易一眼就能理解。
var foo = things.Where(data => myList
                .Any(item => data.Title.ToLower().Contains(item.ToLower())));
var myList = new List<string> { "apple", "book", "ClocK" };
var things = new List<string> { "Apple Jacks", "Book Club", "Clockwork Book", "Claws and Foods", "Clicks", "Application Fundamentals" };
var myRegex = new Regex(string.Join("|", myList.Select(x => Regex.Escape(x))), RegexOptions.IgnoreCase);
foreach (var matchingThing in things.Where(x => myRegex.IsMatch(x)))
    Console.WriteLine(matchingThing);
Apple Jacks
Book Club
Clockwork Book