2014-06-23 8 views
1

J'ai une situation où je dois rechercher des combinaisons en double d'un Guid, String, String provenant d'un DataTable.Combinaisons en double de 3 éléments Dans DataTable

Au départ, je ne devais chercher guid, string - et a été le résoudre en utilisant:

 var duplicates = m_SysAdminData.JOBCLASSES.AsEnumerable() 
      .Where (x => x.IsINACTIVEDATENull()) 
      .GroupBy(d => new KeyValuePair<Guid, string> (d.DEPARTMENTS_GID,d.JOBCLASSESPOSITIONTITLE)) 
      .Where(d => d.Count() > 1); 

Comment puis-je modifier cette option pour permettre la chaîne supplémentaire que je dois participer?

Répondre

0

LINQ vous permet de regrouper des objets de types anonymes, de sorte que vous pouvez réécrire votre requête comme ceci:

var duplicates = m_SysAdminData.JOBCLASSES.AsEnumerable() 
     .Where (x => x.IsINACTIVEDATENull()) 
     .GroupBy(d => new {d.DEPARTMENTS_GID,d.JOBCLASSESPOSITIONTITLE, d.AnotehrString}) 
     .Where(d => d.Count() > 1); 

Cela remplace le type générique nommé KeyValuePair<Guid, string> avec un type anonyme qui a trois champs dérivé de DEPARTMENTS_GID, JOBCLASSESPOSITIONTITLE , et AnotehrString champs des objets JOBCLASSES.

Questions connexes