2016-05-22 5 views
0

cをリスト文字列からは私がCOMBOXと呼ばれるリストを持っている...それはすでに数回に答えたようだが、それは私のために働いていない#

をnullを削除します。 null項目を削除したい

は私が書いた:

List<String> comboxTable = new List<string>(); 
    comboxTable = comboxTable.RemoveAll(item => item == null); 

が、私は取得しています:14は、暗黙のうちに 'System.Collections.Generic.List'

に型 'int型' を変換できません

エラー

私はこれを試しました:

comboxTable = comboxTable.RemoveAll(string.IsNullOrWhiteSpace); 

同じエラーが発生します。 'int'はどこですか? 私は何が間違っていますか?

(COMBOXはコード内の他の文字列値のどこかを取得し、あちこちでヌルを持っている。私はそれらを削除する)

+0

'comboxTable.RemoveAll(item => item == null);'で十分です。割り当てられません。 'int'は削除される要素の数である' RemoveAll'の戻り値型です。https:// msdn.microsoft.com/en-us/library/wdka673a%28v=vs.110%29.aspx –

答えて

5

documentationを確認してください。 RemoveAll()は、整数を返し、あなたのコードは、このようにコードを変更し

タイプSystem.Collections.Generic.List

のオブジェクトにキャストしようとします:

comboxTable.RemoveAll(string.IsNullOrWhiteSpace); 

、それが動作します。 nullのアイテムは削除されます。 RemoveAllは、インスタンス自体で動作し、それはLINQのを使用して新しいもの

+0

...また、空の文字列と ""。それは仕事ではなかった。要点は、RemoveAll()がインスタンス自体を変更し、削除された要素の数を返すことです。 –

+0

@ g.pickardou追加の説明を追加しました – dimlucas

1

を返しません:

List<String> comboxTable = new List<string>(); 
comboxTable = comboxTable.Where(m => !string.IsNullOrEmpty(m)).ToList(); 
+0

linqは必要ありません。また新しいリストインスタンスを作成するにはオーバーヘッド –

+0

@ g.pickardou ...受け入れられた –

4

REMOVEALL()インスタンス自体を変更し、返す要素の数はあなたにも何かを行うことができます

1

を削除しました以下のようなコード comboxTable.RemoveAll(var => String.IsNullOrEmpty(var));

関連する問題