有一个XML文件,有若干列,其中有一列是日期,这列的日期可能3、5个,每个相同的日期可能有若干行。例如:
1. A 2012/7/26
2. B 2012/7/27
3. C 2012/7/26
4. D 2012/7/27
5. E 2012/7/28
6. F 2012/7/26
XML文件的内容如上。现在要把它拆分按日期拆分中不同的文件。例如:
文件1.xml
1. A 2012/7/26
2. C 2012/7/26
3. F 2012/7/26
文件2.xml
1. B 2012/7/27
2. D 2012/7/27
文件3.xml
1. E 2012/7/28
1. A 2012/7/26
2. B 2012/7/27
3. C 2012/7/26
4. D 2012/7/27
5. E 2012/7/28
6. F 2012/7/26
XML文件的内容如上。现在要把它拆分按日期拆分中不同的文件。例如:
文件1.xml
1. A 2012/7/26
2. C 2012/7/26
3. F 2012/7/26
文件2.xml
1. B 2012/7/27
2. D 2012/7/27
文件3.xml
1. E 2012/7/28
再分组就OK了
DEMO:class Program
{
static void Main(string[] args)
{
//XML文件取出来放集合里,这里只是模似
List<Test> list = new List<Test>()
{
new Test(){Id=1,Selector="A",Date=DateTime.Parse("2012/7/26")},
new Test(){Id=2,Selector="B",Date=DateTime.Parse("2012/7/27")},
new Test(){Id=3,Selector="C",Date=DateTime.Parse("2012/7/26")},
new Test(){Id=4,Selector="D",Date=DateTime.Parse("2012/7/27")},
new Test(){Id=5,Selector="E",Date=DateTime.Parse("2012/7/28")},
new Test(){Id=6,Selector="F",Date=DateTime.Parse("2012/7/26")},
};
var collection=list.GroupBy(a => a.Date); //按时间分组就OK
int i = 1;
foreach (var item in collection)
{
Console.WriteLine("文件"+i+".xml");
foreach (var item2 in item)
{
string str = string.Format("{0,-5}{1,-10}{2,-20}",item2.Id,item2.Selector,item2.Date.ToString());
Console.WriteLine(str);
}
i++;
} Console.Read();
}
} public class Test
{
public int Id { get; set; } public string Selector { get; set; } public DateTime Date { get; set; }
}输出:文件1.xml
1. A 2012/7/26
2. C 2012/7/26
3. F 2012/7/26
文件2.xml
1. B 2012/7/27
2. D 2012/7/27
文件3.xml
1. E 2012/7/28