2013-05-29 45 views
1

我在這三個列中有7列是ReadOnly字段,並且基於消耗品名稱我想總結髮布數量字段。如何根據C#中的DataGridView中的另一列對行進行計數

我想總結根據消耗品名稱發佈的數量,並將總數與需要的數量進行比較它們是如此之多的易耗品名稱。我的問題如何計算發佈數量根據的消耗品名稱。 我試過了,最後我得到了答案,這在邏輯上是我無法解釋的。

+0

你有沒有嘗試什麼嗎?請閱讀[常見問題]和[問] –

+0

我正在尋找如何基於另一列對列中的值進行求和。 – Anjali

回答

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 */ 
     } 
    } 
相關問題