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

如何在ASP.NET C#中获取重复ID的重复计数(无需SQL)

在ASP.NET C#中为内存数据添加重复ID计数列

针对后台内置的内存数据,无需SQL,可直接用LINQ实现为每条数据添加对应ID的重复计数,步骤如下:

1. 定义数据模型

先定义原始数据模型和带计数的结果模型:

// 原始数据模型
public class Product
{
    public long Id { get; set; }
    public string Size { get; set; }
}

// 带计数的结果模型
public class ProductWithCount
{
    public long Id { get; set; }
    public string Size { get; set; }
    public int Count { get; set; }
}

2. 准备原始数据示例

模拟你的内置数据:

var originalData = new List<Product>
{
    new Product { Id = 1000984958, Size = "XS" },
    new Product { Id = 1000972994, Size = "S" },
    new Product { Id = 1000972994, Size = "L" }
};

3. 两种实现方式

方式一:先统计ID计数再关联

先通过分组统计每个ID的出现次数,再遍历原始数据添加计数:

// 生成ID与对应计数的映射字典
var idCountMap = originalData
    .GroupBy(p => p.Id)
    .ToDictionary(group => group.Key, group => group.Count());

// 生成带计数的结果集
var result = originalData
    .Select(p => new ProductWithCount
    {
        Id = p.Id,
        Size = p.Size,
        Count = idCountMap[p.Id]
    })
    .ToList();

方式二:一步LINQ完成

利用SelectMany展开分组,直接为组内每条数据添加计数:

var result = originalData
    .GroupBy(p => p.Id)
    .SelectMany(group => group.Select(p => new ProductWithCount
    {
        Id = p.Id,
        Size = p.Size,
        Count = group.Count()
    }))
    .ToList();

最终结果

处理后的数据如下:

  • ID 1000984958,Size XS,Count 1
  • ID 1000972994,Size S,Count 2
  • ID 1000972994,Size L,Count 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:32:08