2012-04-24 3 views
0

Попытка сделать что-то, что я уверен, должно быть простым, но бороться с linq и VB. У меня есть ниже, где я группирую коллекцию по собственному желанию, а затем хочу получить доступ к свойствам моей группы. У меня проблема с анонимной типизацией. Из-за опции strict я должен дать явный тип, но я не могу понять, какой тип должен быть. Ниже не компилируется, потому что t.HeadAccountKey не является значением (поскольку t имеет тип объекта). Так как мне нужно сделать некоторую отливку или мой селектор LINQ неправильно,Linq Группировка в VB.net с анонимными типами и параметром строго

public class TempObject 
    public HeadKey as string 
    Public SubKey as string 
    Public SomeValue as decimal 
end class 

public class GroupTest 
public sub RunTest 
    dim collection new List(of TempObject) = GetTestCollection() 

    Dim groupedValues As IEnumerable = From n In collection _ 
     Group By key = n.HeadKey Into Group Select HeadKeyValue = key, SubValues = Group 

    for each t as object in groupedValues 
    debug.print(t.HeadKeyValue) 
     next 

End sub 

private function GetTestCollection() as List(of TempObject) 
    dim result as new list(of tempobject) 
    Dim x As New tempObject 
    x.HeadAccountNumber = "A" 
     x.SubAccountNumber = "B" 
     x.Value = 500 
     result.Add(x) 
     x = New tempObject 
     x.HeadAccountNumber = "A" 
     x.SubAccountNumber = "C" 
     x.Value = 600 
     result.Add(x) 
     x = New tempObject 
     x.HeadAccountNumber = "B" 
     x.SubAccountNumber = "D" 
     x.Value = 100 
    result.add(x) 
    return result 
end function 
End class 

ответ

1

Вам не нужно указать тип, по крайней мере, с Option Infer on (рекомендуется, не следует путать с Option Strict).

Так следующие работы:

Dim collection = GetTestCollection() 
Dim groupedValues = From n In collection 
    Group n By n.HeadKey Into Group 

For Each t In groupedValues 
    Dim hk = t.HeadKey 
    Dim group = t.Group 
Next 
+0

Ах, конечно же, что делает трюк. благодаря – user1353548

Смежные вопросы