Comment obtenir la valeur de IEnumerable collection à l'aide de sa Clé?

J'ai IEnumerable collection comme suit

IEnumerable<Customer> items = new Customer[] 
{ 
     new Customer { Name = "test1", Id = 999 }, 
     new Customer { Name = "test2", Id = 989 } 
};

Je veux obtenir une valeur à l'aide de la touche Id

J'ai essayé comme suit

public int GetValue(IEnumerable<T> items,string propertyName)
{
      for (int i = 0; i < items.Count(); i++)
      {
           (typeof(T).GetType().GetProperty(propertyName).GetValue(typeof(T), null));
           //I will pass propertyName as Id and want all Id propperty values 
           //from items collection one by one.
      }
}
Pourquoi ne pas simplement utiliser la méthode de sélection? Il est de type sécurisé.
items.Select(x=>x.Id) le ferait. qu'essayez-vous de réaliser?
dynamiclinq.codeplex.com
Si vous voulez le faire dans un "générique", vous pouvez fournir un Func<T, bool> sélecteur (prédicat) à votre méthode au lieu de votre propertyName argument et utilisez-la dans le linq clause where. Même avec ce que vous avez besoin de sélectionner. Si c'est l'ensemble de T point, vous n'avez pas besoin d'un select mais si vous avez besoin d'une propriété spécifique, passer à un autre sélecteur de fonction (de type Func<T, whatever type>)

OriginalL'auteur Neo | 2015-08-24