###配列の特定(null)のものを削除し、削除されたものを読みたい。
現在、データテーブルから持ってきたデータを配列の要素に代入しているのですが、
代入されていないnullの要素を削除したいと思っております。
現在行っている処理としては、
static void Main(string[] args) { //null配列は呼び出さない処理。 string[] tn = new string[10]; tn[0] = "hoge"; //nullデータがあった場合その要素を削除する for (int i = 0; i < tn.Length; ++i) { if (tn[i] != null) { } else{ List<string> numberList = new List<string>(tn); numberList.RemoveAt(i); //要素のコピー tn = numberList.ToArray(); } } for (int i = 0; i < tn.Length; ++i) { if (tn[i] == null) { Console.WriteLine("null"); } //途中で消えるため、エラー Console.WriteLine(tn[i]); }
この処理を実行すると、何故か、5つだけ要素は消えるのですが、他のものが消えてくれません。。。
ですが、
static void Main(string[] args) { //null配列は呼び出さない処理。 string[] tn = new string[10]; tn[0] = "hoge"; //nullデータがあった場合その要素を削除する for (int i = 0; i < tn.Length; ++i) { if (tn[i] != null) { List<string> numberList = new List<string>(tn); numberList.RemoveAt(i); //要素のコピー tn = numberList.ToArray(); } } for (int i = 0; i < tn.Length; ++i) { if (tn[i] == null) { Console.WriteLine("null"); } Console.WriteLine(tn[i]); }
このように、nullのもの以外消すという処理にすると、hogeは消えてくれます。
RemoveAtに削除できる上限があるということなのでしょうか??
分かる方、よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。