linq to sql select 不同的和不同的计数

linq to sql select distinct and count of distinct

我正在努力创建 linq2 sql 查询。我有一个包含媒体记录的 table。其中一列是媒体类型,例如CD、DVD 等

我需要拉出一个列表,该列表将提供存在的每种媒体类型 (Select Distinct(mediatype)) 以及该媒体类型的计数 (Count(mediatype))

我已经能够创建一个不同的列表,但似乎无法弄清楚如何合并计数。 我有...

Dim medialist = (From m In dc.tbDatas
                 Select m.mediatype).Distinct()

感谢任何帮助。

更新... 这是我最近的查询

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()

如果您要计算不同媒体的数量:

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 }