//农历节日
private struct LunarHolidayStruct
    {
      public int Month;
      public int Day;
      public int Recess;
      public string HolidayName;      public LunarHolidayStruct(int month, int day, int recess, string name)
      {
        Month = month;
        Day = day;
        Recess = recess;
        HolidayName = name;
      }
    }
//初始化
    private static LunarHolidayStruct[] lHolidayInfo = new LunarHolidayStruct[]{
            new LunarHolidayStruct(1, 1, 1, "春节"), 
            new LunarHolidayStruct(1, 15, 0, "元宵节"), 
            new LunarHolidayStruct(5, 5, 0, "端午节"), 
            new LunarHolidayStruct(7, 7, 0, "七夕情人节"),
            new LunarHolidayStruct(7, 15, 0, "中元节 盂兰盆节"), 
            new LunarHolidayStruct(8, 15, 0, "中秋节"), 
            new LunarHolidayStruct(9, 9, 0, "重阳节"), 
            new LunarHolidayStruct(12, 8, 0, "腊八节"),
            new LunarHolidayStruct(12, 23, 0, "北方小年(扫房)"),
            new LunarHolidayStruct(12, 24, 0, "南方小年(掸尘)")
        };
如何动态增加一项:
            new LunarHolidayStruct(12, 25, 0, "ABCDE")
使之变为:
    private static LunarHolidayStruct[] lHolidayInfo = new LunarHolidayStruct[]{
            new LunarHolidayStruct(1, 1, 1, "春节"), 
            new LunarHolidayStruct(1, 15, 0, "元宵节"), 
            new LunarHolidayStruct(5, 5, 0, "端午节"), 
            new LunarHolidayStruct(7, 7, 0, "七夕情人节"),
            new LunarHolidayStruct(7, 15, 0, "中元节 盂兰盆节"), 
            new LunarHolidayStruct(8, 15, 0, "中秋节"), 
            new LunarHolidayStruct(9, 9, 0, "重阳节"), 
            new LunarHolidayStruct(12, 8, 0, "腊八节"),
            new LunarHolidayStruct(12, 23, 0, "北方小年(扫房)"),
            new LunarHolidayStruct(12, 24, 0, "南方小年(掸尘)"),
            new LunarHolidayStruct(12, 25, 0, "ABCDE")        };

解决方案 »

  1.   

        List<LunarHolidayStruct> _Test = new List<LunarHolidayStruct>(lHolidayInfo);
                _Test.Add(new LunarHolidayStruct(12, 25, 0, "ABCDE"));
                lHolidayInfo = _Test.ToArray();
      

  2.   

    .net 2.0楼上正解
    .net 1.1用ArrayList吧
      

  3.   

    数组不够修改长度,除非重新new一个数组替换.
    要执行效率,new一个长度大1的新数组,然后循环赋值.
    要简单一点,ToList(),Add(),ToArray()就可以了.
    如果需要频繁修改数组长度且数组较大,就要考虑用其它数据结构了,如List<valueType>...
      

  4.   

         1楼正解,现在正在用VS2008 是.NET 3.0  ,里面的初始化器非常好用,  呵呵  建议哈.. 
      

  5.   

    恩,还是赞成一楼的泛型,好的没话说,用Arraylist不太好,因为要是现在又有一个需求,说是要求你输出其中任意一个节日,形式如:“7月7日七夕情人节”这时候有的是int型的有string型的,要遍历输出的话,类型是什么呢?不好确定吧?所以从长远考虑,还是泛型好些吧……
      

  6.   

    int count = lHolidayInfo.Length;
    LunarHolidayStruct[] lunarHolidayStructNew = new LunarHolidayStruct[count+1];
    lunarHolidayStructNew[count] = new LunarHolidayStruct(12, 25, 0, "ABCDE");
    Array.Copy(lHolidayInfo, 0, lunarHolidayStructNew, 0, count);
      

  7.   

    c#中数组不能动态增长,用List吧
      

  8.   

    List<T> 即可
    或者
    Dictionary<T1,T2>数组是本身是一个引用对象