You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# DataTable每行字符出现次数统计方法问询

C# DataTable行内字符统计解决方案

DataTable.Compute仅适用于列级聚合计算,无法直接实现行内单元格的字符统计,最优方案是遍历每行的单元格逐个计数,以下是两种场景的实现代码:

场景1:统计指定字符在每行的出现次数

比如统计字符'x'的行内出现次数:

// 假设dt为目标DataTable
char target = 'x';
foreach (DataRow row in dt.Rows)
{
    int count = 0;
    foreach (var cell in row.ItemArray)
    {
        char c = Convert.ToChar(cell);
        if (c == target) count++;
    }
    Console.WriteLine($"行{dt.Rows.IndexOf(row)}中'{target}'出现{count}次");
}

场景2:统计每行所有字符的出现次数

对应示例需求,输出每行所有字符的频次:

foreach (DataRow row in dt.Rows)
{
    var charFreq = new Dictionary<char, int>();
    foreach (var cell in row.ItemArray)
    {
        char c = Convert.ToChar(cell);
        if (charFreq.ContainsKey(c))
            charFreq[c]++;
        else
            charFreq[c] = 1;
    }
    Console.WriteLine($"行{dt.Rows.IndexOf(row)}字符统计:");
    foreach (var pair in charFreq)
    {
        Console.WriteLine($"'{pair.Key}'出现{pair.Value}次");
    }
}

注意事项

  • 因DataTable无列名,直接通过row.ItemArray遍历所有单元格即可,无需依赖列名。
  • 若单元格存储的是长度为1的字符串而非char类型,可将Convert.ToChar(cell)替换为cell.ToString()[0]。

内容的提问来源于stack exchange,提问作者notarobot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:25:05