簡體   English   中英

如何刪除列表C#中的一項?

[英]How to delete one items in List 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]也有9個項目。 如何修復我的代碼以刪除包含&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>-->"));

如何修復我的代碼以刪除包含&nbsp;

您可以使用List.RemoveAll方法刪除與指定謂詞定義的條件匹配的所有元素。

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

檢查這個Demo

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"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM