[VB.NET] Linq で 列の平均を計算する

2013年11月10日

 Linq で 列のデータを平均を求めた例。
 以下のコードの場合、左側一列目 10,20,51 の平均(=27)を計算し、それを列分繰り返す。

Sub Main()

    Dim table()() = {New Double() {10, 20, 30, 40},
                     New Double() {20, 40, 62, 74},
                     New Double() {51, 45, 25, 30}}

    Dim columnAverage =
        From column
          In Enumerable.Range(0, table(0).Length)
          Select
          (
              From row
                In Enumerable.Range(0, table.Length)
                Select table(row)(column)
          ).Average

    For Each n In columnAverage
        Console.WriteLine(n.ToString)
    Next

End Sub

 

 結果

27
35
39
48

 

 SQL の相関サブクエリーのような感じに…(汗
 Enumerable.Range 使ったりとか、table(0).Length 使ったりとか、なんかいまいちな気もしますが、とりあえずは集計できるということで…
 .Average を別のメソッド(.Sumとか)に変えれば他の集計もできたりとか。






カテゴリー: Program, VB.NET

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org