将C#List <T>拆分为两个

fir*_*ger 2 c# asp.net generics list

我正在使用C#和ASP.NET 3.5.基本上我正在从数据集中检索一列数据并将其放入一个列表中,如下所示:

    List<String> dates = new List<String>();

    foreach (DataRow rowMonth in myDS.Tables[0].Rows)
    {
        string ListedMonthYear = (string)rowMonth[0];
        dates.Add(ListedMonthYear);
    }
Run Code Online (Sandbox Code Playgroud)

返回的值是:

 Apr-10
 Mar-10
 Feb-10
 Jan-10
 Dec-09
 Nov-09
 Oct-09
Run Code Online (Sandbox Code Playgroud)

我有兴趣将这些值分成两个列表,并希望将来对它们执行操作.

Apr   |  2010
Mar   |  2010
Feb   |  2010
Jan   |  2010
Dec   |  2009
Nov   |  2009
Oct   |  2009
Run Code Online (Sandbox Code Playgroud)

这样做的最佳方法是什么?

编辑:rowMonth只是包含所有日期相关值的数据行 - 月 - 年,月开始,月结,月活动或非活动.基本上我只是试图提取第一列的月份来进行操作并忽略其余部分.

dtb*_*dtb 5

您可以使用LINQ:

var months = (from item in dates
              select item.Substring(0, 3))
             .ToList();

var years  = (from item in dates
              select 2000 + int.Parse(item.Substring(4, 2)))
             .ToList();
Run Code Online (Sandbox Code Playgroud)

您可能更喜欢将两个部分分别存储在同一个列表中:

var result = (from item in dates
              select Tuple.Create(item.Substring(0, 3),
                                  2000 + int.Parse(item.Substring(4, 2))))
             .ToList();
Run Code Online (Sandbox Code Playgroud)