2009-10-20 7 views
2

J'ai une liste maîtresse de couleurs:Filtrage d'une liste <string> d'un autre via LINQ

List<string> completeList = new List<string>{"red", "blue", "green", "purple"}; 

Je passe dans une liste des couleurs existantes d'un produit

List<string> actualColors = new List<string>{"blue", "red", "green"}; 

Comment puis-je obtenir une liste qui est dans l'ordre de la liste complète? (Rouge, bleu, vert)

Répondre

16
var ordered = completeList.Intersect(actualColors); 

Si cela ne fonctionne pas, faire

var ordered = actualColors.Intersect(completeList); 
+0

Linq a aussi 'Union' aussi, et un tas de caractéristiques impressionnantes. –

+0

Neat! Je n'avais aucune idée que cela pourrait être fait simplement. – mezoid

+0

Pour plus de simplicité +1 –