C# 边打边打

C# 边打边打,c#,xml,string,list,xpath,C#,Xml,String,List,Xpath,我有一个方法,可以通过xpath解析XML的开始日期和结束日期 List<string> GetWorkNodeDate = new List<string>(); List<string> GetWorkNodeEstablisment = new List<string>(); XmlNodeList WorkNodeListDate = XmlResponceDoc.SelectNodes("/response/employees/empl

我有一个方法,可以通过xpath解析XML的开始日期和结束日期

List<string> GetWorkNodeDate = new List<string>();
List<string> GetWorkNodeEstablisment = new List<string>();

XmlNodeList WorkNodeListDate = XmlResponceDoc.SelectNodes("/response/employees/employee/starttime | /response/employees/employee/endtime");

if (WorkNodeListDate != null)
{
    foreach (XmlNode StartDate in WorkNodeListDate)
    {
        string GetStartDate = StartDate.InnerText;
        GetWorkNodeDate.Add(GetStartDate);
    }
}
List GetWorkNodeDate=new List();
List GetWorkNodeEstablisment=new List();
XmlNodeList WorkNodeListDate=XmlResponceDoc.SelectNodes(“/response/employees/employee/starttime |/response/employees/employees/endtime”);
if(WorkNodeListDate!=null)
{
foreach(WorkNodeListDate中的XmlNode StartDate)
{
字符串GetStartDate=StartDate.InnerText;
GetWorkNodeDate.Add(GetStartDate);
}
}

我遇到的问题是,每次它从存储在xml中的许多数据中执行两次循环来收集开始日期和结束日期,我希望将它们合并为两个值,然后将它们存储到列表中。我只是想知道实现这一目标的最佳方式是什么?感谢您提供的帮助。

我建议您改用for循环:

for (int i = 0; i < WorkNodeListDate.Count; i = i + 2)
{
    string startAndStoptime = WorkNodeListDate[i].InnerText + "..." + WorkNodeListDate[i + 1];
}
for(int i=0;i
您可以访问开始和停止时间,并将它们放在一起。显然,你必须自己把它们存放在某个地方

迭代器每次增加2,因为这样您将访问另一个starttime。还要注意,它会检查
i-1
是否小于计数。这是因为i+1不是另一个开始时间,而是停止时间。因此,当列表的开始时间“用完”时,i的上升必须停止


结果将是:
starttime…stoptime

“每次循环两次”为什么?在哪里?您能展示一些示例XML数据以便我们可以尝试一下吗?目前的问题是,列表一个接一个地存储开始和结束日期,我不知道如何在流程进行时或之后对它们进行连接。如何使用XPath
/response/employees/employees
和访问
starttime
endtime
元素?@Martin Liversage,非常感谢