2012-12-18 18 views
0

假设我有一个公用分类自定义对象找东西沿着这些路线:过程LINQ的群体一下子

Public Class MyObject 
    Public Function ReturnData(StartDate as Date, InputData as List(of string)) As List(Of String) 
End Class 

然后有一个看起来像这样的另一个自定义对象:

Public Class HoldingObject 
    Public MyDate as Date 
    Public MyInfo as String 
End Class 

现在,在不同的类中,我有以下几点:

Dim DataList as List(of HoldingObject) 
Dim WorkingClass as New MyObject 

Datalist looking as follows: 
MyDate:   MyInfo: 
1/1/2012  a 
1/2/2012  b 
1/2/2012  c 
1/2/2012  d 
1/1/2012  e 
1/2/2012  f 
1/2/2012  g 
1/2/2012  h 
1/3/2012  i 
1/3/2012  j 
1/3/2012  k 
1/1/2012  l 
1/1/2012  m 

我想什么做的,是弥补某种LINQ的声明,即会:

  1. 集团Datalist按日期列表(可以是3个分组输入 - 1/1/2012; 2012/1/2; 2012/1/3)
  2. 每组提交到WorkingClass.ReturnData作为输入,并且通过LINQ的/ lambda表达式或看到作为最佳的编程实践任何其他方式获得的返回值

我怎么能这样做?

回答

0

其实我现在不能测试它在我自己的,但它应该工作:

Dim result = (From i In DataList 
      Group i By date = i.MyDate Into g 
      Select WorkingClass.ReturnData(date, g.Select(Function(gi) gi.MyInfo).ToList())).ToList() 
+0

谢谢你了! - 我99%确定你的解决方案是一种魅力,但现在我遇到了第二个问题,我没有在这个问题中提到 - 我实际上需要按照2个标准(开始和结束日期)进行分组 - 我认为这将很容易,但它打我 - 我在这里发布的问题:http://stackoverflow.com/questions/13940898/linq-group-by-errors如果你有任何输入,那将是很棒!尽管如此,您的解决方案(一旦我得到它的工作)看起来很完美,我相信!谢谢!!!! –