创建一组“连接”的数据的好方法是什么?

时间:2013-01-29 20:30:49

标签: c# list class csv data-collection

我目前正在编写一个程序,其中包含有关锻炼的数据。变量是

运动 - 例外)卧推

日期 - 例如)2013年12月8日

Reps - Ex)10

体重 - 例)135

设定重量 - Ex)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]的索引时,所有其他信息都被适当地索引了?

1 个答案:

答案 0 :(得分: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);
相关问题