2010-04-06 2 views

Répondre

7

Vous pouvez essayer ceci:

int[] arr = { 2, 3, 4, 5, 8, 2, 3, 5, 4, 2, 3, 4, 6 }; 
var q = 
    from g in arr.GroupBy(x => x) 
    where g.Count() == 1 
    select g.First(); 
+0

Vous devez cependant avoir une méthode pour tester l'égalité pour le 'T' générique. Très bonne réponse cependant. –

+0

@NickLarsen pouvez-vous donner un exemple en quelque sorte? Intéressant. – nawfal

+0

@nawfal c'était il y a des années, je ne me souviens pas de ce que je faisais à ce moment-là; Pardon. –

3

Utilisez la fonction Count().

int[] a = {2,3,4,5,8,2,3,5,4,2,3,4,6}; 

    var selection = from i in a 
     where (a.Count(n => n == i) == 1) 
     select i; 
0

Il n'est pas nécessaire de les compter, il suffit de vous assurer qu'ils sont uniques.

int[] arr = { 2, 3, 4, 5, 8, 2, 3, 5, 4, 2, 3, 4, 6 }; 
var unique = arr.Where((n, index) => !arr.Take(index).Contains(n) && !arr.Skip(index+1).Contains(n)); 
Questions connexes