[c#Linq]重複番号に枝番をつける


はじめに

とあるListがあり、そのなかに重複番号がある場合、
とかく重複番号で並び替えて、全件回して、重複番号があったら、
インクリメントっとかしてしまいがちですが、
全件回すのは、コスト的にも大きいですし、
何よりも、条件が増えるたびにif文が増えていき、ドンドン解析に時間のかかるソースになっていってしまいます。

そこで、条件に一致するデータを抽出しては、処理というデータドリブン的?な考えでいきます。

本文

インデックスを使用する例は、よく見かけたのですがインデックスを付与する方法のいいサンプルが見当たらず、StackOverFlowを探検したのですが、
回せばいいじゃん的な意見が多かったので、考えてみました。

下記処理概要:
GroupByメソッドにより、重複チェックするコードでグルーピングする。
グルーピングが2件以上のコードを抽出。
Selectメソッドでインデックス付与。
#


#
これをジェネリックバージョンにすると、こんな感じなのかな。
#

#

なんだか、ジェネリックにするとリフレクションを多用する自分がいます。
あまりよくないような。。。

最後に

とりあえず、
回して回して、引っ掛けて~、はなるべく避けたいと思うこのごろです。

ジェネリックのほうは、ビルド通しただけなので、動くかどうか。。。
たぶん、大丈夫だと思いますが。。。


Posted in C#

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です