2012-03-07 27 views
0

どうやってそれを行うのですか?CでのDatagridviewで重複を数える方法

Iまし泉How to Count Duplicates in List with LINQでこのコード:

var list = new List<string> { "a", "b", "a", "c", "a", "b" }; 

     var q = from x in list 
       group x by x into g 
       let count = g.Count() 
       orderby count descending 
       select new { Value = g.Key, Count = count }; 
     foreach (var x in q) 
     { 
      MessageBox.Show("Value: " + x.Value + " Count: " + x.Count); 
     } 

しかし、どのようにDataGridViewの中に重複をカウントするために、それを修正するには?例えば、datagridview1 [7、i]ここで、iはdatagriviewの行数です。

EDIT

は今、私のコードは、そのように見ている:

 var list = dataGridView1.Rows.OfType<DataGridViewRow>() 
     .GroupBy(x => x.Cells["TestValues"].Value) 
     .Select(g => new { Value = g.Key, Count = g.Count(), Rows = g.ToList() }) 
     .OrderByDescending(x => x.Count); 

     var q = from x in list 
       group x by x into g 
       let count = g.Count() 
       orderby count descending 
       select new { Value = g.Key, Count = count }; 

     foreach (var x in q) 
     { 
      // dataGridView1[7, x].Value.ToString(); 

      MessageBox.Show("Value: " + x.Value + " Count: " + x.Count +"Rows: "); 

     } 

答えて

1

このような何かが動作するはずです:

"MYCOLUMN"あなたがしたい列の名前です
var list = myDataGridView.Rows.OfType<DataGridViewRow>() 
      .Select(x => x.Cells["MYCOLUMN"].Value.ToString()); 
var q = from x in list 
    group x by x into g 
    let count = g.Count() 
    orderby count descending 
    select new { Value = g.Key, Count = count }; 

、または列インデックスを渡すことができます。

EDIT:あなたは、例えば5行を持っている場合はそう

var q = myDataGridView.Rows.OfType<DataGridViewRow>() 
     .GroupBy(x => x.Cells["MYCOLUMN"].Value.ToString()) 
     .Select(g => new {Value=g.Key, Count=g.Count(), Rows=g.ToList()}) 
     .OrderByDescending(x => x.Count); 

このコードはまた、重複を持つ行のリストが含まれている項目のリストを返します。 :

ID  MYCOLUMN 
0   A 
1   B 
2   C 
3   A 
4   B 

qは、3つの要素が含まれます:

Key="A", Count=2, Rows={ [0 - A] [3 - A]} 
Key="B", Count=2, Rows={ [1 - B] [4 - B]} 
Key="C", Count=1, Rows={ [2 - C] } 
+0

TNXを、これは動作しています:)しかし、それは重複が起こった各列に知ることができますか? – Elfoc

+0

@Elfoc:私の編集が必要なものかどうか確認してください。 (私はそれをテストしなかったのでいくつかの構文エラーがある可能性があります) – digEmAll

+0

メッセージを取得しています:値:{値= Test1、カウント= 3、行= System.Collections.Generic.List'1 [System.Windows.Forms .DataDgridViewRow]} Count:1 //トピックの編集を確認してください – Elfoc

関連する問題