如何使用c#从dataTable中实现Count(Distinct{x})

本文关键字:Distinct Count 实现 何使用 dataTable | 更新日期: 2023-09-27 18:28:39

我想找出DataTable特定列的不同值的计数,并将结果存储在列表框中。


目前,我有代码来提取DataTable列的不同值,并将其存储在ListBox中,如下所示:-

 var ids = dt.AsEnumerable()
                    .Select(s => new
                    {
                        EventID = s.Field<Int32>("ID"),
                    })
                    .Distinct().ToList();
               listBox.DataSource = ids;

其中dt是DataTable 的名称

ID是列的名称

例如:-

表为

 Name   ID    Marks
 Ashish 10     200
 Ram    100    300
 Sur    200    800
 Shim   10     899
 Kam    100    989

然后列表框中的结果应显示为:-

{ID=10}{Count=2}
{ID=100}{Count=2}
{ID=200}{Count=1}

目前我得到的输出为:-

{ID=10}
{ID=100}
{ID=200}

请帮忙!!

如何使用c#从dataTable中实现Count(Distinct{x})

您可以使用GroupBy:

var idCounts = dt.AsEnumerable()
    .GroupBy(row => row.Field<int>("ID"))
    .Select(g => new
    {
        EventID = g.Key,
        Count = g.Count()
    })
    .ToList();
listBox.DataSource = idCounts;