2016-06-21 5 views
1

私はList<String>に9つの項目が含まれています。List C#でアイテムを1つ削除するには?

商品の削除を希望します:&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(); 
} 

私の質問は:

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 
} 

私の決意:この中

項目を削除する方法

は、文字列が</div>-->

サンプルで<!--<divと終わりで始まる含まれていケース:

私はこの文字列を見つけるのにStartWithEndWithを使用し、Removeを見つける。

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

サンプル入力してください –

+1

あなたのコードはかなり読めない:)私はまだの構造が何であるかを理解していないですあなたの配列。あなたは 'List 'と言っていますが、実際はリストのようです。コード全体を表示できますか? –

+1

ところで、ここで 'line.Replace("   "、" ");'戻り値は単に無視されます。 'Replace'は元の文字列を変更せず、新しい変更を返します。 –

答えて

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

OR簡単な方法:

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

私の 'listHeader [0]'は '<! - - >'で始まります。メソッド 'Contains'が〜から検出されたようです。 – vanloc

+0

あなたは素晴らしいです。それを見て、私の質問を解決してください。 – vanloc

+0

@VănLộcうれしいわよ! – fuzz

3

項目を削除するには、自分のコードを修正する方法あなたは、指定された述語によって定義された条件に一致するすべての要素を削除しList.RemoveAll方法を使用することができます&nbsp;

が含まれています。

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

チェックこのDemo

+0

ありがとう、@hari prasad。 – vanloc

関連する問題