2013-10-21 113 views
1

我想將一組值分隔爲直方圖圖表的分檔。我的直方圖中會有10個垃圾箱。要排序和計算每個箱中的箱數,我正在使用一個數組。我得到的錯誤是The operand of an increment or decrement operator must be a variable, property or indexer。 idx會給我需要增加的bin號碼。我只是不確定增加它的正確方法。感謝您的建議和意見。遞增數組中的值

  int binsize = Convert.ToInt32(xrLabel101.Text)/10;//Max divided by 10 to get the size of each bin 
      this.xrChart4.Series[0].Points.Clear(); 
      int binCount = 10; 
      for (int i = 0; i < binCount; i++) 
      { 
       int m = Convert.ToInt32(xrLabel104.Text);//This is the number of loops needed 
       string[] binct = new string[10]; 

       for (int k = 0; k < m; k++) 
       { 
        int idx = Convert.ToInt32(currentcolumnvalue)/binsize; 
        binct[idx]++;//I know this is wrong. Suggestions? 
       } 

      } 
+0

binct的數據類型是什麼? – gleng

+0

我創建了數組來保持每個10箱的箱數的數量。它可以只是一個整數。 –

+0

查看Tigran的回答。您正在訪問上述代碼中索引爲'idx'的對象,該對象是一個字符串數組。你不能增加一個字符串數組。我假設你正在嘗試用k在for循環中做些什麼? –

回答

3

這是一個簡單:你的表達binct[idx]返回的類型不支持數值 操作像+++- ...

爲了避免這種情況還有最後幾個方面:

  • Operator overloading
  • 執行其他類型相同的操作那麼這並映射的RE最後輸入你想要的。
+0

所以我可以將其更改爲int [] binct = new int [10]? –

+0

@RolandP:如果你現在更改了數組''int''',那麼你可以對它的元素進行算術運算,因爲它們是整數。 – Tigran

2

你可以做的是:

  int binsize = Convert.ToInt32(xrLabel101.Text)/10;//Max divided by 10 to get the size of each bin 
      this.xrChart4.Series[0].Points.Clear(); 
      int binCount = 10; 
      for (int i = 0; i < binCount; i++) 
      { 
       int m = Convert.ToInt32(xrLabel104.Text);//This is the number of loops needed 
       int[] binct = new int[10]; 

       for (int k = 0; k < m; k++) 
       { 
        int idx = Convert.ToInt32(currentcolumnvalue)/binsize; 
        binct[idx] = binct[idx] + 1; 
       } 

      } 
1

你試圖遞增一個字符串,它是沒有意義的。讓你的數組成爲一個int數組