2010-08-09 8 views
1

Linq a cette fonction très pratique Where qui me permet de filtrer les résultats d'une dénombrable ...C#/Linq: Où X est Y?

foreach (var method in typeof(Program).GetMethods()) 
{ 
    foreach (var attr in method.GetCustomAttributes(inherit: true).Where(a => a is UrlAttribute)) 
    { 
     Console.WriteLine(((UrlAttribute)attr).Url); 
    } 
} 

Mais il ne semble pas très pratique pour récupérer uniquement les objets d'un certain type, parce que je dois encore jeter leur. Linq n'a pas de méthode pour résoudre ce problème, n'est-ce pas?


Est-ce une bonne solution? J'apprends à écrire mes propres attributs, et j'essaie de comprendre comment les récupérer tous maintenant.

+4

OfType est déjà une extension intégrée à linq, je ne sais pas pourquoi vous voulez implémenter votre propre –

+1

@Fadrian: Je ne suis pas>. mpen

Répondre

7

Je suis assez sûr que cette méthode existe déjà.

http://msdn.microsoft.com/en-us/library/bb360913.aspx

Suis-je manque quelque chose dans votre question?

+0

Hahaha ... Je cherchais une telle méthode dans le popup intellisense, mais je ne pouvais pas penser à ce qu'il serait appelé, donc j'ai supposé qu'il n'existait pas. Puis j'ai commencé à écrire ma propre méthode, et je me suis dit que "OfType" serait un bon nom pour ça ... allez les chiffres. – mpen

Questions connexes