注目の記事 PICK UP!

  • C#

C# JSONファイルからLINQを使って集計する方法 – 勝率の算出

DynamicJSONを使ってJSONファイルの解析後、LINQで勝率を算出する方法を紹介します。

下記にあるサンプルコードは、Webサーバーからhttp通信でJSONファイルを取得したことを前提になっています。前提条件を詳しく知りたい方は、下記のリンクを参照してください。

DynamicJSONを使うための前提条件

/// <summary>
/// 勝率を算出します
/// </summary>
/// <param name="json"></param>
/// <returns>WinningPercentage</returns>
public dynamic WinPercent(dynamic json)
{
    // 試合を行った回数を取得
    var totalCnt = from Table in ((Data[])json)
                   where Math.Abs(Table.cntflg) != 0
                   select new { Table.cntflg };

    // 試合回数の合計算出
    var totalSum = totalCnt.Select(total => total.cntflg).Count();


    // 勝ちフラグの回数を取得
    var winCnt = from Table in ((Data[])json)
                 where Table.balance > 0
                 select new {Table.winflg};

    // 勝ち回数の合計算出
    var winSum = winCnt.Select(win => win.winflg).Count();

    // 勝率
    double winPer = (double)winSum / totalSum;

}

/// <summary>
/// JSONファイルのデータ構造を定義します
/// </summary>
public class Data
{
    public int cntflg { get; set; }
    public int winflg { get; set; }
}

関連記事

  1. C# DataTableにカラムを追加

  2. C# DataTableからComputeを使って合計値や平均値を算出する

  3. C# LINQを使ってDataTableを並び替える

  4. C# LINQを使って重複行をGroup byする方法

  5. Android Studio jarファイルを追加したらリビルドしよう

  6. C# DataTableの特定データにNULLを入れる

  7. C# DataTableをCSVに書き込む

  8. C# LINQを使って合計値や平均値を算出する

  9. C# DataTableにExcelを読み込む

PAGE TOP