2012-12-18 19 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如果你有任何輸入,那將是很棒!儘管如此,您的解決方案(一旦我得到它的工作)看起來很完美,我相信!謝謝!!!! –