我有一个字符串,以及一个名为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";
}
}
}
我该如何解决?
答案 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