計測・制御・データ処理のトータルソリューションで、お客様の問題解決提案を行います。


インフォテック開発者のつぶやき: C#の拡張メソッドがおもしろい。


C#の拡張メソッドがおもしろい。


2012/06/25

最近以下の短い拡張メソッドを作りました。
この拡張メソッドを使用すると、Listや配列の全てのIndexを遅延評価で列挙します。

public static IEnumerable Indexes(this IList items) {
    if (items == null) yield break;
    for (int i = 0; i < items.Count; i++) {
        yield return i;
    }
}



どこで使用するのかというと、
たとえば、コレクションの全ての要素に対して処理を行いたい場合、foreachを
使用しますが、処理内でIndexを使用したい場合、foreachではIndexが分かりません。
(たしかPHPなんかではIndexと要素の両方が使用できたはず)

foreach (var item in items) {
    //Indexが分からない
}


もちろんforを使用すれば良いのですが、パッと見ただけで全ての要素に対して処理している事が
分かった方が可読性が高くて良い。なので以下のように使います。

foreach (int i in items.Indexes()) {
    //要素ごとの処理
}

投稿者:匿名 | 投稿時間:2012/06/25 16:33

コメントを投稿

Blogger

HOME 会社案内 事業内容 PC開発事例 FA開発事例 ソリューション開発事例 製品情報 ブログ 求人情報 サイトについて サイトマップ 地図(別窓) お問い合わせ

最近の投稿


過去の投稿





▲ページの先頭へ