2010-12-13 29 views
1

Je suis nouveau au concept de LINQ. je dois savoir comment prendre la valeur distincte dans le tableau de date à l'aide LINQJe dois filtrer la valeur distincte de datatable using IEnumerable LINQ

Exemple de code:

IEnumerable<DataRow> query1 = 
          (from pmh in pshTable.AsEnumerable() 
          where 
          (pmh.Field<String>("DeletedType") != "D" && pmh.Field<String>("code").ToUpper() != "XXX.XX") 
          select pmh).OrderBy(a => a.Field<String>("Description")).Distinct(); 

dans ce codage je peux en mesure d'obtenir la ligne distincte .mais i besoin que colonne particulière valeur « description » est distinct. s'il vous plaît laissez-moi savoir .. valeur

+2

Si mon approche fonctionne pour vous, marquer comme réponse, dans la main gauche de mon répondre il y a un Tik, vérifiez-le :) –

Répondre

1

Que voulez-vous par exemple, vous avez le tableau ci-dessous:

ID | Description 
---------------- 
1 | Test 
2 | Test 
3 | Sample 
4 | Sample 

Que voulez-vous obtenir votre Distinct spécifique? par exemple {{1,Test},{3,Sample}} or {{1,Test},{4,Sample}} ou ...

mais vous pouvez utiliser GroupBy et Sélectionnez cette option pour faire Similaire à ce que vous voulez:

 (from pmh in pshTable.AsEnumerable() 
            where 
            (pmh.Field<String>("DeletedType") != "D" 
            && pmh.Field<String>("code").ToUpper() != "XXX.XX") 
            select pmh).OrderBy(a => a.Field<String>("Description")) 
     .GroupBy(p=>p.Field<string>("Description")) 
     .Select(p=>p.FirstOrDefault()); 
+0

Merci beaucoup, il fonctionne très bien .. – raja