如何检查一行是否包含字符串列表中的特定字符串?

时间:2014-08-14 17:49:19

标签: c#

我有一个字符串,以及一个名为name的字符串列表。我试图检查我的字符串列表中的一行是否包含列表中的名称。

我的字符串:

peter has
julia has
elvis has
carol has

此字符串的行:

string[] lines = mystring.Split(new string[] { "\r\n" }, StringSplitOptions.None);

我的字符串列表包含:peter和elvis。

所以它会显示:

peter checked
elvis checked

我试过了:

    for(int i =0;i < lines.Lenght;i++){
     for(int x =0; x < mylist.Count;x++){
       if(lines[i].Contains(mylist[x]){
         textbox1.Text = textbox1.Text + mylist[x] + " checked";
       }
     }
   }

我该如何解决?

2 个答案:

答案 0 :(得分:2)

要仅返回列表中包含来自其他列表(名称)的子字符串的字符串,请执行以下操作:

var result = lines.Where(line => names.Any(name => line.Contains(name)));

答案 1 :(得分:0)

以下代码看起来不漂亮,但至少对我有用......

string[] line = { "peter has", "julia has", "elvis has", "carol has" };
string[] mylist = {"peter", "elvis"};
List<string> newitems = new List<string>();
string checkeditem;
foreach (var item in line)
{
    foreach (var check in mylist)
    {
        if (item.Contains(check))
        {
            checkeditem = item.Replace("has", "checked");
            newitems.Add(checkeditem);

        }
    }

}
//You can bind the newitems with your textbox1 here