【发布时间】:2011-04-12 08:20:17
【问题描述】:
我正在通过转换现有项目来自学 C#,并且一直在转换以下 vb linq 代码:
Dim outStuff = From tt In (From t In Products.SelectMany(Function(p) If(p.tags IsNot Nothing, p.tags, New ObservableCollection(Of TagModel)))
Group By tagName = t.name,
v = (Aggregate p In Products Where If(p.tags IsNot Nothing, p.tags.Contains(t), Nothing) Into Sum(p.views)),
nl = (Aggregate p In Products Where If(p.tags IsNot Nothing, p.tags.Contains(t), Nothing) Into Sum(p.num_likes))
Into g = Group, Count())
Group By name = tt.tagName Into Count = Sum(tt.Count), viewsTotal = Sum(tt.v), num_likesTotal = Sum(tt.nl)
Select name, Count, viewsTotal, num_likesTotal
在哪里Products As ObservableCollection(Of ProductModel)
到目前为止,我已经设法转换了这么多:
var x = Products.SelectMany(p => (p.tags != null) ? p.tags : new ObservableCollection<TagModel>());
var tags = from t in x group t by t.name into g select new { tagname=g.First().name};
“Group By”让我难过。任何帮助都会很棒...
【问题讨论】:
-
如果它对任何人有帮助,这是我正在尝试转换并添加到页面的代码所属的项目:codeproject.com/KB/silverlight/ListDragDropSL.aspx
标签: c# vb.net linq c#-4.0 linq-to-objects