以循环或其他方式写入数据

Writing data in a loop or otherwise

也许我有一个小问题要问你。我正在编写 Xamarin.Android 应用程序。准确地说是日历。我有一个给定 class 的字符串 [] 列表。我已经像这样写了每个月和每天的数据:

 // January
 JavaList<Class_Event> fullList; fullList = new JavaList<Class_Event>();
 fullList.Add(new Class_Event(new DateTime(2022, 01, 1, 10, 0, 0), new DateTime(2022, 01, 1, 12, 0, 0), AppResources.ResourceManager.GetString("ev_01_01_2022"), Color.WhiteSmoke));

 ...

 fullList.Add(new Class_Event(new DateTime(2022, 01, 31, 10, 0, 0), new DateTime(2022, 01, 31, 12, 0, 0), AppResources.ResourceManager.GetString("ev_31_01_2022"), Color.WhiteSmoke));
 return fullList;

这就是我的 class 的样子:

class Class_Event
{
    DateTime startTime;
    DateTime endTime;
    string subject;
    Color robe_color;

    public Class_Event(DateTime StartTime, DateTime EndTime, string Subject, Color Robe_Color)
    {
        this.startTime = StartTime;
        this.endTime = EndTime;
        this.subject = Subject;
        this.robe_color = Robe_Color;
    }


    public DateTime StartTime
    {
        get { return startTime; }
    }
    public DateTime EndTime
    {
        get { return endTime; }
    }
    public string Subject
    {
        get { return subject; }
    }       
    public Color Robe_Color
    {
        get { return robe_color; }
    } 

不幸的是,列出一年中的所有 365 天非常乏味。你觉得怎么样。你能把这些数据保存在循环中还是使用其他东西?对我来说,尝试在循环中写入此数据是为了代替添加事件颜色。我为我的写作感到抱歉。我用Google翻译:)

你应该可以做这样的事情

DateTime first = new DateTime(2022, 01, 1, 10, 0, 0);

for (var ndx = 0; ndx < 365; ndx++)
{
   var start = first.AddDays(ndx);
   var end = start.AddHours(2);
   var desc = AppResources.ResourceManager.GetString($"ev_{start.Month}_{start.Day}_{start.Year}")

   var class = new Class_Event(start, end, desc, Color.WhiteSmoke);
   fullList.Add(class);
}