LINQ to DataTable, trouver les doublons

À l'aide de la suite de DataTable:

    Dim d As New DataTable()
    d.Columns.Add("Product", GetType(System.String))
    d.Columns.Add("Value", GetType(System.Double))

    d.Rows.Add(New Object() {"OAP1", 100.0})
    d.Rows.Add(New Object() {"EPP4", 100})
    d.Rows.Add(New Object() {"OAP1", 150.25})
    d.Rows.Add(New Object() {"OAPIN", 200.0})

Je suis en train d'utiliser LINQ pour identifier s'il y a plus d'un de tout type de produit. En SQL, ce serait de travailler à quelque chose comme:

SELECT Product FROM SOME_TABLE HAVING COUNT(*) > 1

Je ne peux pas pour la vie de moi de travailler sur la façon de le faire dans LINQ. J'étais quelqu'un qui fait quelque chose comme ceci:

    Dim q = From row In d.AsEnumerable()
            Group row By New { column1 = row("Product"), column2 = row("Value") }
            Into grp
            Where grp.Count() > 1
            Select row

    For Each item In q
        ' 'q' is not declared. It may be inaccessible due to its protection level.
    Next

Mais j'obtiens une erreur lorsque je tente de l'utiliser réellement "q". Des idées sur comment je peut faire ce travail?

  • C'était ce que j'étais suivant: thereforesystems.com/find-duplicates-using-linq
  • Vous souhaitez regrouper les deux Produits et de la valeur? Avec votre échantillon de données que l'habitude de vous donner tous les doublons.
  • Vous avez raison. J'ai édité la requête SQL afin de refléter ce que je veux réellement. Je veux trouver le double des types de Produit.