如何删除列表C#中的一个项目?

时间:2016-06-21 04:23:32

标签: c#

List<String>包含九项。

我想删除项目包含:&nbsp;

我用代码执行此操作:

foreach (string text in listHeader[0])
{
    if (text.Contains("&nbsp"))
    {
        listHeader[0] = listHeader[0].SelectMany(line =>
                                       {
                                           line.Replace("&nbsp;", "");
                                           return new String[] { line };
                                       }).ToList();
    }
}

listHeader[0]也有九项。如何修复我的代码以删除项目包含&nbsp;

示例数据:

listHeader[0]= {
                   text
                   sample
                   new string
                   &nbsp;
               }

listHeader[1]的另一个案例需要使用<!--<div</div>-->进行过滤。

foreach (string text in listHeader[1])
{
    listHeader[1] = Regex.Replace(text, "<!--<div.*?</div>-->", "").ToList();
}

我的问题是:

如何删除项目包含以<!--<div开头的字符串,并以</div>-->

结束

样品:

listHeader[1] = {
go to school

<!--<div id='fav_0118668891'class='icon displayOn' ><span class='favorite' onclick='javascript:addMatchFavorites("0118668891","014018",false,false);' title='undefined'></span></div>-->

work at the company

take a coffee
}

我的决心:

在这种情况下:

我使用StartWithEndWith来查找此字符串并Remove

listHeader[1].RemoveAll(x => x.StartsWith("<!--<div") && x.EndsWith("</div>-->"));

2 个答案:

答案 0 :(得分:3)

  

如何修复我的代码以删除包含&nbsp;

的项目

您可以使用List.RemoveAll方法删除与指定谓词定义的条件匹配的所有元素。

listHeader[0].RemoveAll(x=> x.Contains("&nbsp"));

选中此Demo

答案 1 :(得分:3)

foreach (var item in listHeader[0])
{
    if (item.Contains("&nbsp"))
        nineItems.Remove(item); // remove item(s) containing &nbsp
}

或者更简单的方法:

listHeader[0].RemoveAll(x => x.Contains("&nbsp"));