在字符串列表中查找子字符串

use*_*621 19 .net c# linq string substring

我有一个这样的列表,我希望能够在此列表中搜索来自另一个字符串的子字符串.例:

List<string> list = new List<string>();
string srch = "There";
list.Add("1234 - Hello");
list.Add("4234 - There");
list.Add("2342 - World");
Run Code Online (Sandbox Code Playgroud)

我想"There"在我的列表中搜索并返回"4234 - There".我试过了:

var mySearch = list.FindAll(S => s.substring(srch));
foreach(var temp in mySearch)
{
    string result = temp;
}
Run Code Online (Sandbox Code Playgroud)

Bro*_*ass 26

使用Linq,只需检索第一个结果:

string result = list.FirstOrDefault(s => s.Contains(srch));
Run Code Online (Sandbox Code Playgroud)

要做这个没有Linq(例如早期的.NET版本,如.NET 2.0),您可以使用List<T>FindAll方法,在这种情况下,将返回列表中包含搜索词的所有项:

var resultList = list.FindAll(delegate(string s) { return s.Contains(srch); });
Run Code Online (Sandbox Code Playgroud)

  • 你需要在文件中添加`using System.Linq` - 我假设你使用的是.NET 4.0? (2认同)
  • 当然,您也可以对 FindAll 使用简写形式 (`s =&gt; s.Contains(srch)`)。 (2认同)

aba*_*hev 11

要返回所有条目:

IEnumerable<string> result = list.Where(s => s.Contains(search));
Run Code Online (Sandbox Code Playgroud)

只有第一个:

string result = list.FirstOrDefault(s => s.Contains(search));
Run Code Online (Sandbox Code Playgroud)