2014-06-18 25 views
0

我的DataGridView的一列包含許多不同的值。要查找值在指定範圍之間的DataGridView中的行數?

例如:

columnName 
    10 
    21 
    23 
    25 
    12 
    14 
    16 
    28 
    30 
    29 
    36 
    47 
    56 
    65 
    78 
    89 
    96 
    121 
    126 
    21 
    132 
    55 
    16 
    ... etc 

在這裏,我需要單獨的位於範圍0-30,30-60,60-90之間的值[...]。

{ 
    var sector1 = "no.of values lies between 0-30"; 
    var sector2 = "no.of values lies between 30-60"; 
    var sector3 = "no.of values lies between 60-90"; 
    var sector4 = "no.of values lies between 90-120"; 
    } 

我想這一點,

 try 
    { 
    var values = dataGridView1.Rows.Cast<DataGridViewRow>().Select(x => (int)x.Cells[columnName].Value); 
    var sector1 = values.Count(x => x >= 0 && x < 30); 
    var sector2 = values.Count(x => x >= 30 && x < 60); 
    var sector3 = values.Count(x => x >= 60 && x < 90); 
    var sector4 = values.Count(x => x >= 90 && x < 120); 
    var sector5 = values.Count(x => x >= 120 && x < 150); 
    var sector6 = values.Count(x => x >= 150 && x < 180); 
    [...] 
    MessageBox.Show(sector1.ToString()); 
    [...] 
    } 
    catch 
    { 
     MessageBox.Show("ERROR"); 
    } 

,但沒有用,我只得到錯誤通知。

任何一個可以建議語法來查找兩個範圍之間的行數?

+1

我猜你得到一個例外。你能否抓住這個例外並在這裏粘貼信息。 – qamar

+0

你得到的例外究竟是什麼?你能用ex.Message替換「ERROR」嗎(提供你捕獲Exception ex)? – user3613916

回答

2

能否請您試試這個代碼

var values = gvtest.Rows.Cast<GridViewRow>().Select(x => x.Cells[0].Text); 
var sector1 = values.Count(x => Convert.ToInt32(x) >= 0 && Convert.ToInt32(x) < 30); 
+0

謝謝@Sajith。有輸出 – Vigna

相關問題