VB.NETで配列の部分抽出をする

本当は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>)

ソース

以下実際のソースになります。

参考サイト

配列の中から指定した範囲の要素を抜き出す

LINQの便利さに感動したのでその時のメモ

 

スポンサーリンク


コメントを残す

メールアドレスが公開されることはありません。