LINQ liste la propriété au tableau?

Quelle est la meilleure façon de faire où PROPNAME pourrait être un bien de type T? Construire avec de la réflexion, ou est-il un bon LINQ façon de faire cela?

T[] vals = people.Select(x => x.PROPNAME).ToArray<T>();

c'est le meilleur que j'ai eu jusqu'à présent:

    public T[] ConvertListCol<TFrom,T>(IEnumerable<TFrom> list, string col)
    {
        var typ = typeof (TFrom);
        var props = typ.GetProperties();
        var prop = (from p in props where p.Name == col select p).FirstOrDefault();
        var ret = from o in list select prop.GetValue(o, null);
        return ret.ToArray<T>();
    }

Eu une erreur dans le retour... mais se rapproche. C'est bien, mais un peu plus problématique que je l'avais espéré.

source d'informationauteur sgtz