リスト内のnull
であるすべての要素を削除するためのC#の.Netで定義されたデフォルトのメソッドはありますか?
List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};
パラメーターの一部がnull
であるとしましょう。事前に知ることができないため、リストからそれらを削除して、null以外のパラメータのみが含まれるようにします。
次のものが必要になるでしょう。
List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};
parameterList.RemoveAll(item => item == null);
組み込みのメソッドは知りませんが、linqを使用できます。
parameterList = parameterList.Where(x => x != null).ToList();
RemoveAllメソッドはトリックを実行する必要があります。
parameterList.RemoveAll(delegate (object o) { return o == null; });
メソッドOfType()
はnull値をスキップします:
List<EmailParameterClass> parameterList =
new List<EmailParameterClass>{param1, param2, param3...};
IList<EmailParameterClass> parameterList_notnull =
parameterList.OfType<EmailParameterClass>();
List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};
parameterList = parameterList.Where(param => param != null).ToList();
簡単でLINQなし:
while (parameterList.Remove(null)) {};
別のシンプルでエレガントなオプションがあります:
parameters.OfType<EmailParameterClass>();
これにより、タイプEmailParameterClass
以外のすべての要素が削除され、タイプnull
のすべての要素が明らかに除外されます。