c#datatable某列怎么统计不同项和计数

aguangkj 2023-07-22 10:52:00

datatable有一列,如下:

一班

一班

二班

二班

二班

三班

想统计出每个班的名字,还有每个班出现的次数,

怎么搞?

...全文
1031 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT小猫咪 2023-07-22
精选
  • 打赏
  • 举报
回复 1

你可以使用 LINQ 查询来对 DataTable 进行统计。首先,你需要将 DataTable 转换为一个包含 DataRow 的集合,然后使用 LINQ 查询来统计不同项和计数。

using System;
using System.Data;
using System.Linq;

public class Program
{
    public static void Main()
    {
        // 创建 DataTable 并添加数据
        DataTable dataTable = new DataTable();
        dataTable.Columns.Add("班级");
        dataTable.Rows.Add("一班");
        dataTable.Rows.Add("一班");
        dataTable.Rows.Add("二班");
        dataTable.Rows.Add("二班");
        dataTable.Rows.Add("二班");
        dataTable.Rows.Add("三班");

        // 使用 LINQ 查询统计不同项和计数
        var result = from row in dataTable.AsEnumerable()
                     group row by row.Field<string>("班级") into g
                     select new
                     {
                         班级 = g.Key,
                         出现次数 = g.Count()
                     };

        // 输出统计结果
        foreach (var item in result)
        {
            Console.WriteLine("班级: " + item.班级 + ", 出现次数: " + item.出现次数);
        }
    }
}

这段代码会输出以下结果:

班级: 一班, 出现次数: 2
班级: 二班, 出现次数: 3
班级: 三班, 出现次数: 1
# 

这样就统计出了每个班级的名称和出现次数。

aguangkj 2023-07-23
  • 举报
回复
@IT小猫咪 请问不用linq怎么实现这个方法呢?linq看不懂,只会基础知识
CSDN-Ada助手 2023-07-22
精选
  • 打赏
  • 举报
回复
您的问题已经帮您同步至问答, 链接: https://ask.csdn.net/questions/7980914, 请您保持关注, 如果回答有帮助解决此问题, 麻烦您动动小手给相关的回答点赞, Ada会在评论区为您更新结题状态
清晨曦月 2023-10-25
  • 打赏
  • 举报
回复

不是可以执行sql查询吗?

雲墨知秋 2023-07-23
  • 打赏
  • 举报
回复

除了使用 LINQ,还可以使用 C# 的 foreach 循环和 DataTable 的 Select 方法来查询和统计 DataTable 中的数据。具体步骤如下:

定义一个类来表示班级和出现次数,如下所示:

public class ClassCount
{
public string ClassName { get; set; }
public int Count { get; set; }
}
遍历 DataTable 中的每一行数据,将每个班级和出现次数结合起来,如下所示:

DataTable dataTable = // DataTable with columns "ClassName" and "Count"
var classCounts = new List();
foreach (DataRow row in dataTable.Rows)
{
var className = row["ClassName"].ToString();
var count = int.Parse(row["Count"].ToString());
var classCount = new ClassCount
{
ClassName = className,
Count = count
};
classCounts.Add(classCount);
}
上述代码中,我们使用了 foreach 循环遍历 DataTable 中的每一行数据,并将每个班级和出现次数结合起来,保存到一个 List 中。

输出每个班级和出现次数,如下所示:

foreach (var classCount in classCounts)
{
Console.WriteLine($"{classCount.ClassName} 出现了 {classCount.Count} 次");
}
上述代码中,我们使用了 foreach 循环遍历 List 中的每个元素,并输出每个班级和出现次数。

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧