程序是读取遍历一个XML文件,把需要的把“日期”和“名称”放进一个List<T>集合里面。“日期”可以放进去了,但“名称”放不进。请指教,谢谢!
static void Main(string[] args)
{
Console.Write("请输入年份:");
string Year = Console.ReadLine();
int YearResult = 0;
string XmlTitle = string.Empty;
if (int.Parse(Year) >= 2012 && int.Parse(Year) <= 2017)
{
YearResult = int.Parse(Year) - DateTime.Now.Year;
}
switch (YearResult)
{
case 0:
XmlTitle = "HolidayDate_2012";
break;
case 1:
XmlTitle = "HolidayDate_2013";
break;
case 2:
XmlTitle = "HolidayDate_2014";
break;
case 3:
XmlTitle = "HolidayDate_2015";
break;
case 4:
XmlTitle = "HolidayDate_2016";
break;
case 5:
XmlTitle = "HolidayDate_2017";
break;
} List<DataInfo> data = new List<DataInfo>(); XmlTextReader txtReader = new XmlTextReader(@"F:\HolidayData.xml");
while (txtReader.Read())
{
if (txtReader.Name == XmlTitle)
{
string[] vals = txtReader.ReadString().Trim().Split(',');
foreach(string strDate in vals)
{
data.Add(new DataInfo { HolidayDate = DateTime.Parse(strDate) });
}
} if (txtReader.Name == "HolidayName")
{
string[] strVal = txtReader.ReadString().Trim().Split(',');
foreach (string strName in strVal)
{
data.Add(new DataInfo { HolidayName = strName }); //这里的值add不进data
}
}
}
PrintRes(data);
Console.ReadKey();
}
static void PrintRes(List<DataInfo> list)
{
foreach (DataInfo data in list)
{
Console.WriteLine(data.HolidayName,data.HolidayDate); //data.HolidayName里面没有值。
}
} } class DataInfo
{
public string HolidayName { get; set; }
public DateTime HolidayDate { get; set; }
}
static void Main(string[] args)
{
Console.Write("请输入年份:");
string Year = Console.ReadLine();
int YearResult = 0;
string XmlTitle = string.Empty;
if (int.Parse(Year) >= 2012 && int.Parse(Year) <= 2017)
{
YearResult = int.Parse(Year) - DateTime.Now.Year;
}
switch (YearResult)
{
case 0:
XmlTitle = "HolidayDate_2012";
break;
case 1:
XmlTitle = "HolidayDate_2013";
break;
case 2:
XmlTitle = "HolidayDate_2014";
break;
case 3:
XmlTitle = "HolidayDate_2015";
break;
case 4:
XmlTitle = "HolidayDate_2016";
break;
case 5:
XmlTitle = "HolidayDate_2017";
break;
} List<DataInfo> data = new List<DataInfo>(); XmlTextReader txtReader = new XmlTextReader(@"F:\HolidayData.xml");
while (txtReader.Read())
{
if (txtReader.Name == XmlTitle)
{
string[] vals = txtReader.ReadString().Trim().Split(',');
foreach(string strDate in vals)
{
data.Add(new DataInfo { HolidayDate = DateTime.Parse(strDate) });
}
} if (txtReader.Name == "HolidayName")
{
string[] strVal = txtReader.ReadString().Trim().Split(',');
foreach (string strName in strVal)
{
data.Add(new DataInfo { HolidayName = strName }); //这里的值add不进data
}
}
}
PrintRes(data);
Console.ReadKey();
}
static void PrintRes(List<DataInfo> list)
{
foreach (DataInfo data in list)
{
Console.WriteLine(data.HolidayName,data.HolidayDate); //data.HolidayName里面没有值。
}
} } class DataInfo
{
public string HolidayName { get; set; }
public DateTime HolidayDate { get; set; }
}
这句下面的}设个断点,看是否执行过。如果没执行过,说明代码逻辑不对。
{
data.Add(new DataInfo { HolidayNames = strName });
}
这里的strName,是有值,每次循环都有一个值。就是Add进去集合里,没有保存下来。不知那里出问题了,谢谢!