Предполагая, что у вас есть следующая структура, которая напоминает вашу структуру:
public class Data1
{
public int Id { get; set; }
public String Dep { get; set; }
public int Sal { get; set; }
public String JoinDate { get; set; }
}
public class Data2
{
public Data2()
{
Sal = new List<int>();
}
public List<int> Sal { get; set; }
public String JoinDate { get; set; }
public override string ToString()
{
return Sal.Aggregate(JoinDate, (current, s) => current + s.ToString());
}
}
И следующие наблюдаемые коллекции:
public class Data1List : ObservableCollection<Data1>
{
public Data1List()
{
Add(new Data1{ Id = 1, Dep = ".NET", Sal = 5000, JoinDate = "04/08/2011"});
Add(new Data1{ Id = 2, Dep = ".NET", Sal = 6000, JoinDate = "04/07/2011"});
Add(new Data1{ Id = 3, Dep = "JAVA", Sal = 7000, JoinDate = "04/08/2011"});
Add(new Data1{ Id = 4, Dep = "JAVA", Sal = 8000, JoinDate = "04/07/2011"});
Add(new Data1{ Id = 5, Dep = ".NET", Sal = 9000, JoinDate = "04/06/2011"});
}
}
public class Data2List : ObservableCollection<Data2>
{
}
Вы можете попробовать этот код, чтобы решить вашу проблему или, по крайней мере, найти лучшее решение:
var l1 = new Data1List();
var l2 = new Data2List();
foreach (var items in l1.GroupBy(d => d.JoinDate))
{
var d2 = new Data2 { JoinDate = items.Key };
foreach (var item in items)
d2.Sal.Add(item.Sal);
l2.Add(d2);
}
Надеюсь, это поможет вам найти решение! :)
18.08.2011