将账单数量统计到数据表中

Count Number of Bills into DataTable

DataTable 包含两列 BillId 和 BillValues。 BillValue 可以是任何数字(1 到 1000)。 我想计算出现在 DataTable 上的 5 张账单、10 张账单和所有其他账单的总数,并将它们添加到字典中。对此,请指教

BillId , BillValue
1          5
1          10
1          10
1          5
1          20
1          5
1          4
1          10

正如@jarlh 所说,使用 group by 就可以了

DECLARE @t TABLE (BillID INT, BillValue INT)
INSERT INTO @t VALUES
(1,5),
(1,10),
(1,10),
(1,5),
(1,20),
(1,5),
(1,4),
(1,10)

SELECT BillID, BillValue, COUNT(BillId) AS n
FROM    @t
GROUP BY BillID, BillValue

结果

BillId  BillValue  n
--------------------
1       4          1
1       5          3
1       10         3
1       20         1

如果您正在寻找 C# 解决方案

        DataTable dt = new DataTable();
        // Assuming you fill Datatable first
        Dictionary<int, int> billCounter = new Dictionary<int, int>();
        foreach(DataRow dr in dt.Rows)
        {
            int bill = int.Parse(dr["BillValue"].ToString());
            if (billCounter.ContainsKey(bill))
                billCounter[bill]++;
            else
                billCounter.Add(bill, 1);
        }
        // bill counter is filled with unique counters