1

私は現在、運動に関するデータを取り込むプログラムを書いています。変数は

エクササイズ - 例) ベンチプレス

日付 - 例) 08/12/13

担当者 - 例) 10

重量 - 例) 135

重量設定 - 例) 3

休憩時間 - 例) 120 (秒)

日付の体重 - 例) 200

CSVファイルからインポートしています。データを解析して、そのように設定されたクラスを提供するようにしました

    Public Class WorkoutInformation
   {
   public string Exercise{get;set;}
   public List<DateTime> date; 
   public List<dynamic> sets {get;set;}
   public List<dynamic> reps {get; set;}
   public List<dynamic> weight {get;set;}
   public List<dynamic> restTime {get; set;}
   public List<dynamic> bodyWeight {get;set;}

}

だからここに私の問題があります。これらをプロットすると、日付がソートされていないことがわかりました。以前の日を最初に表示したいと思います。だから私は自分のを並べ替えてきましたList<WorkoutInformation>。しかし、これにより、どの日付がどの体重、担当者、またはその他の情報と一致するかを失う可能性が高くなることがわかりました. 私の質問は、リスト Ex) のような情報にアクセスできるクラスを作成する方法ですが、他のすべての情報のMyList.date[i]インデックスを変更すると、適切にインデックスが作成されますか?MyList.date[i]

4

1 に答える 1

1

より良い設計は、データの 1 つのセッションを保持するクラスを作成することです。

public class WorkOutSession
{
    public string Exercise { get; set; }
    public DateTime Date { get; set; }
    public int Sets { get; set; }
    public int Reps { get; set; }
    public int Weight { get; set; }
    public int RestTime { get; set; }
    public int BodyWeight { get; set; }
}

public class WorkOutInformation
{
    public List<WorkOutSession> Sessions { get; set; }
}

この設計により、セッション リストを日付で並べ替えることができ、セッションのすべてのデータが関連付けられたままになります。

var sessionsByDate = Sessions.OrderBy(s => s.Date);
于 2013-01-29T20:48:25.590 に答える