//农历节日 
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, "南方小年(掸尘)") 
        }; 
如何判断一项是否存在?
例如要找:(8,15,0,"中秋节")

解决方案 »

  1.   

    请贴上语句:
     List<LunarHolidayStruct> _Test = new List<LunarHolidayStruct>(lHolidayInfo);        if (_Test.BinarySearch(1, 10, 0, "厂庆日").ToString() == "") ;
            {         }
    此语句编译出错!不能运行。
      

  2.   

            bool bIn = false;
            foreach (SolarHolidayStruct sh in sHolidayInfo)
            {
                if ((sh.Month == 1) && (sh.Day == 10) && (sh.Recess == 0) && (sh.HolidayName == "厂庆日"))
                {
                    bIn = true;
                    break;
                }
            }有没有比上面更简单的?
      

  3.   

    LunarHolidayStruct forSearch=new LunarHolidayStruct(8,15,0,"中秋节");
    int index=Array.BinarySearch(HolidayInfo,forSearch);
    if(index<0)
       MessageBox.Show("Not Found!");
      

  4.   

     private static string search(string str)
                {
                    string li="";
                   var result=from hol in lHolidayInfo
                              where hol.HolidayName==str
                              select hol;
                   if (result.ToArray().Length==0)
                   {
                       li="不存在";
                   }
                   else
                   {
                       li = "存在";
                   }
                   return li;
                }
      

  5.   

    List <LunarHolidayStruct> lst= new List <LunarHolidayStruct>(); 
    lst.Add(l);
    LunarHolidayStruct l=new LunarHolidayStruct(8,15,0,"中秋节");
    if(lst.Contains(l))
    {
     
    }
      

  6.   


    建议用这种方法实现,在用Contains的时候记得分清楚一个问题,是值比较还是引用比较另外LZ可以寻找比较优的查找算法,把你的struct写成一个类,实现contains方法,在contains方法中实现算法.