我在这三个列中有7列是ReadOnly字段,并且根据耗材名称我想要汇总已发出数量的字段。
我想根据耗材名称汇总发出的数量,并将总金额与所需数量进行比较它们是如此多的耗材名称。我的问题如何根据消耗品名称计算已发布数量列。 我试过,最后我得到了答案,这是逻辑上我没有解释它。
答案 0 :(得分:0)
1)创建一个包含“耗材名称”列的所有行的字符串列表。填写姓名。
2)创建一个等于上面列表中项目数的整数列表。填写数量。
3)从(1)。
创建不同字符串的列表4)创建一个等于(3)中项目数的整数列表。
5)进入每个不同的元素并获得相关的匹配'耗材名称'并添加数量。
6)如果您想比较或检查其他列,可以遵循类似的步骤。
您可以参考以下代码:
public void getQuantity()
{
List<string> consumbleNames = new List<string>();
List<int> quantity = new List<int>();
//Cells[5] refer to 6th column : Quantity issued: you can use column name too
for (int i = 0; i < yourDataGridView.Rows.Count; i++)
{
consumbleNames.Add(yourDataGridView.Rows[i].Cells[0].Value.ToString());
quantity.Add((int)Convert.ToInt32(yourDataGridView.Rows[i].Cells[5].Value.ToString()));
}
List<string> distinctNames = new List<string>(consumbleNames.Distinct());
List<int> quantityRelated = new List<int>(distinctNames.Count);
for (int i = 0; i < distinctNames.Count; i++)
{
quantityRelated.Add(new int());
for (int j = 0; j < consumbleNames.Count; j++)
{
if (consumbleNames[j].Equals(distinctNames[i]))
{
quantityRelated[i] += quantity[j];
}
}
}
foreach (int t in quantityRelated)
{
/* quantity corresponds to the each distinct item */
}
}