2016-09-23 6 views
1

Ich habe diese Datentabelle (RadkyData):Such Zeilen mit doppeltem Wert in Datentabelle

Name  EAN PRICE 
ITEM1 12345 10 
ITEM2 5558 55 
ITEM3 12345 44 

Ich brauche Zeilen mit doppeltem Wert EAN suchen.? (Eine Liste aller EAN, die doppelte sind) Ich habe diesen Code:

var polozkySum = RadkyData.AsEnumerable() 
        .Select(r => new 
        { 
         c2 = r.Field<string>("EAN") 
        }) 
        .GroupBy(g => new { g.c2 }) 
        .Select(x => new 
        { 
         col2 = x.Key.c2 
        }); 

Haben Sie Ideen, bitte?

+3

siehe akzeptierte Antwort von http://stackoverflow.com/questions/2078736/linq-with-group-by-having-count. Das brauchst du. – Natrium

+0

was sollte das Ergebnis sein? eine Liste aller EAN, die dupliziert sind oder die Zeilen selbst? – Mat

+0

@Mat eine Liste von Ean – Daniela

Antwort

1
var rowsWithDupEAN = RadkyData.AsEnumerable() 
    .GroupBy(row => row.Field<string>("EAN")) 
    .Where(g => g.Count() > 1) 
    .SelectMany(g => g); 

Wenn Sie nicht die Zeilen wollen, aber nur diese Spaltenwerte (wie in einem Kommentar erwähnt):

var dupEanList = RadkyData.AsEnumerable() 
    .GroupBy(row => row.Field<string>("EAN")) 
    .Where(g => g.Count() > 1) 
    .Select(g => g.Key) 
    .ToList(); 
0

Sie können LINQ to Datatable verwenden.

var result = Radkydata.AsEnumerable() 
      .GroupBy(r => r.Field<string>("EAN")) 
      .Select(g => g.First()) 
      .CopyToDataTable(); 
+0

Dies ist nicht die Liste der * Duplikate * –

Verwandte Themen