que tengo algo que me está volviendo absolutamente loco ...expresiones lambda en vb.net
Public Function GetAccountGroups() As IList(Of AccountGroup)
Dim raw_account_groups As IList(Of AccountGroup)
raw_account_groups = _repository.GetAccountGroups().ToList()
Dim parents = (From ag In raw_account_groups _
Where ag.parent_id = 0 _
Select ag).ToList()
parents(0).sub_account_groups = (From sag In raw_account_groups _
Where sag.parent_id = 0 _
Select sag).ToList()
Dim sql_func As Func(Of AccountGroup, List(Of AccountGroup)) = Function(p) _
(From sag In raw_account_groups _
Where sag.parent_id = p.id _
Select sag).ToList()
parents.ForEach(Function(p) p.sub_account_groups = sql_func(p))
Return parents
End Function
La línea "parents.ForEach (function (p) = p.sub_account_groups sql_func (p))" ha este error ...
El operador '=' no está definido para los tipos 'System.Collections.Generic.IList (Of st.data.AccountGroup)' y 'System.Collections.Generic.List (Of st.data. AccountGroup) '.
pero realmente no puedo ver cómo es diferente de este código de Rob Connery
public IList<Category> GetCategories() {
IList<Category> rawCategories = _repository.GetCategories().ToList(); var parents = (from c in rawCategories
where c.ParentID == 0
select c).ToList();
parents.ForEach(p =>
{
p.SubCategories = (from subs in rawCategories
where subs.ParentID == p.ID
select subs).ToList();
});
return parents;
}
que compila perfectamente ... ¿qué estoy haciendo mal?
"lambada expressions" - lol :) –
¡Es el código prohibido! –
¿Código prohibido? Pensé que era Ruby? – GEOCHET