どのように空のアイテムを配列から削除しますか?配列から空白のエントリを削除する方法
空でない項目を繰り返して新しい配列に割り当てますか?
String test = "John, Jane";
//Without using the test.Replace(" ", "");
String[] toList = test.Split(',', ' ', ';');
どのように空のアイテムを配列から削除しますか?配列から空白のエントリを削除する方法
空でない項目を繰り返して新しい配列に割り当てますか?
String test = "John, Jane";
//Without using the test.Replace(" ", "");
String[] toList = test.Split(',', ' ', ';');
StringSplitOptions
を取るstring.Split
のオーバーロードを使用しますし、リストのToArrayメソッドを呼び出し、またはLINQであなたはおそらく非を選択することができますが、リストにそれらを置くことができ
String[] toList = test.Split(new []{',', ' ', ';'}, StringSplitOptions.RemoveEmptyEntries);
を空白とtoArrayを実行します。
あなたはthe overload of string.Split
which allows the suppression of empty itemsを使用します。
String test = "John, Jane";
String[] toList = test.Split(new char[] { ',', ' ', ';' },
StringSplitOptions.RemoveEmptyEntries);
またはより良い、あなたがするたびに新しい配列を作成しないでしょう。それがあるべきよう
private static readonly char[] Delimiters = { ',', ' ', ';' };
// Alternatively, if you find it more readable...
// private static readonly char[] Delimiters = ", ;".ToCharArray();
...
String[] toList = test.Split(Delimiters, StringSplitOptions.RemoveEmptyEntries);
Split
は、リストを変更しません。良い。
string[] result = toList.Where(c => c != ' ').ToArray();
var result = toList.Where(c =>!string.IsNullOrEmpty(c))。ToArray(); – MvcCmsJon
string[] toList = test.Split(',', ' ', ';').Where(v => !string.IsNullOrEmpty(v.Trim())).ToArray();
''''は 'string.IsNullOrEmpty'がfalseを返すようにします。 'IsNullOrEmpty'を使いたい場合は、最初に' Trim() 'する必要があります。 –
@Justin良い点。私はそれを見落とした:P –
少しLINQを使用して、これを試してみてください:
var n = Array.FindAll(test, str => str.Trim() != string.Empty);
セパレータは空白が続いている場合、あなたは、セパレータで、それを単に含めることができます。
String[] toList = test.Split(
new string[] { ", ", "; " },
StringSplitOptions.None
);
区切り文字に後続スペースがない場合も、これらも含めることができます。
String[] toList = test.Split(
new string[] { ", ", "; ", ",", ";" },
StringSplitOptions.None
);
注:文字列に本当に空のアイテムが含まれている場合、それらは保持されます。私。 "Dirk, , Arthur"
は"Dirk, Arthur"
と同じ結果を得ません。
非常に多くの視点のおかげで、それを愛する。 – Rod