我正在努力创建一个linq2 sql查询。我有一个包含媒体记录的表格。其中一列是媒体类型,例如CD,DVD等。
我需要提取一个列表,该列表将为我提供每种媒体类型(选择Distinct(mediatype))以及该媒体类型的计数(Count(mediatype))
我已经能够创建一个独特的列表,但似乎无法弄清楚如何合并计数。 我有......
Dim medialist = (From m In dc.tbDatas
Select m.mediatype).Distinct()
任何帮助表示感谢。
... UPDATE 这是我最新的查询
Dim meadialist = (FROM m In dc.tbDatas
WHERE m.PassFail = True AndAlso m.DateProcessed.HasData
Group By m Into Group
Select MediaType = m.MediaType, MediaCount = Group.Count()).ToArray()
更新2 .... 这是给出我需要的结果的查询...即MediaType列表和该媒体类型的计数。
Dim meadialist = (FROM m In dc.tbDatas
WHERE m.PassFail = True AndAlso m.DateProcessed.HasData
Group By m.MediaType Into Group
Select MediaType, MediaCount = Group.Count()).ToArray()
答案 0 :(得分:1)
如果您正在尝试计算不同媒体的数量:
Dim medialistCount = medialist.Count()
如果您正在尝试计算每种媒体类型的数量:
Dim medialist = (From m in dc.tbDatas
Group By m Into Group
Select MediaType = m.mediatype, MediaTypeCount = Group.Count()).ToArray()
第二个linq查询将每种类型的媒体类型分组并计算为匿名类型数组。
For Each m in medialist
Console.WriteLine(m)
Next
示例输出:
{ MediaType = Type1, MediaTypeCount = 2 }
{ MediaType = Type2, MediaTypeCount = 1 }