在C#中创建一个多数组?

时间:2015-08-13 12:32:44

标签: c# php

这是我编写的一些PHP代码的示例:

$list=array();
    for($d=1; $d<=31; $d++)
    {
        $time=mktime(12, 0, 0, $month, $d, $year);
            for($hour = 1;$hour <=23; $hour++){
                $list[$hour]["0001-0010"][date('Y-m-d', $time)]["ATA"]= array();
                $list[$hour]["0011-0020"][date('Y-m-d', $time)]["ATA"]= array();
                $list[$hour]["0021-0030"][date('Y-m-d', $time)]["ATA"]= array();
                $list[$hour]["0031-0040"][date('Y-m-d', $time)]["ATA"]= array();
                $list[$hour]["0041-0050"][date('Y-m-d', $time)]["ATA"]= array();
                $list[$hour]["0051-0059"][date('Y-m-d', $time)]["ATA"]= array();

                $list[$hour]["0001-0010"][date('Y-m-d', $time)]["ATD"]= array();
                $list[$hour]["0011-0020"][date('Y-m-d', $time)]["ATD"]= array();
                $list[$hour]["0021-0030"][date('Y-m-d', $time)]["ATD"]= array();
                $list[$hour]["0031-0040"][date('Y-m-d', $time)]["ATD"]= array();
                $list[$hour]["0041-0050"][date('Y-m-d', $time)]["ATD"]= array();
                $list[$hour]["0051-0059"][date('Y-m-d', $time)]["ATD"]= array();
            }
    }

如何将此转换为C#?

2 个答案:

答案 0 :(得分:0)

使用LINQ

解决方案非常简单
from day in Enumerable.Range(1,31)
select from hour in Enumerable.Range(1,23)
       select from minute in Enumerable.Range(0,5)
              select new string[]{
                  new {string.Format("{0}(1)0-{0}{1}9 {2}-{3}-{4}ATA",hour,minute,Year,Month,day)},
                  new {string.Format("{0}(1)0-{0}{1}9 {2}-{3}-{4}ATD",hour,minute,Year,Month,day)}
              }

较长的方法几乎与您的代码相同

var list=new Arraylist();
for(int d=1; d<=31; d++)
{
    var daylist=new Arraylist();
    var time=new DateTime(year, month, d, 12,0,0);
    for(int hour = 1;hour <=23; hour++){
        daylist.Add(hour + "0001-0010"+time.ToString()+"ATA"]);
        daylist.Add(hour + "0011-0020"+time.ToString()+"ATA"]);
        //..etc
    }
    list.Add(daylist);
}

请注意代码仅供参考,不太可能按原样运行

编辑:假设SLaks评论你所追求的是正确的 然后上面的例子改为

var list=new Dictionary<string,object>();
for(int d=1; d<=31; d++)
{
    var time=new DateTime(year, month, d, 12,0,0);
    for(int hour = 1;hour <=23; hour++){
        list.Add(hour + "0001-0010"+time.ToString()+"ATA", value);
        list.Add(hour + "0011-0020"+time.ToString()+"ATA", value);
        //..etc
    }
}

答案 1 :(得分:-1)

如果我确切地说明了你的标题,那么第一个结果就是https://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx

例如:

  

以下声明创建一个包含三维,4,2和3的数组。

int[, ,] array1 = new int[4, 2, 3];