本当はVB.NETで配列(Listじゃない)の部分削除をしたかったのですが、
調べても方法がわからなかったため、部分抽出で代用しました。
(もし配列の部分削除の方法を知ってたら教えてほしいです。。)
方法
LINQが使える.NET Framework 3.5以上が入っている場合の、2通りのパターンを紹介します。
Skip、Takeを使う
Skip関数で先頭を決定し、Take関数でどれだけ使うか(長さ)を指定する方法です。
処理速度はこちらの方が早いです。
SkipとTakeに関する詳細はMSDNで。
Enumerable.Skip<TSource> メソッド (IEnumerable<TSource>, Int32)
Enumerable.Take<TSource> メソッド (IEnumerable<TSource>, Int32)
Whereを使う
ラムダ式を使って、配列から抽出する条件を指定します。
Where中のラムダ式で引数を2つにすると、配列のインデックスを使用することができます。
Skip、Takeに比べたら、処理速度はめちゃ遅いです。
短い配列を数回操作するだけなら気になりませんが、ループの中で使うときは注意が必要です。
Whereに関する詳細はMSDNで。
Enumerable.Where<TSource> メソッド (IEnumerable<TSource>, Func<TSource, Boolean>)
ソース
以下実際のソースになります。
コメントを残す