Qual è il modo migliore per fare ciò in cui PROPNAME
potrebbe essere una qualsiasi proprietà di tipo T
? Costruiscilo con la riflessione, o c'è un buon modo LINQ per farlo?LINQ elenca la proprietà all'array?
T[] vals = people.Select(x => x.PROPNAME).ToArray<T>();
questo è il migliore che abbia avuto finora:
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>();
}
ottenuto un errore nel ritorno ... ma sempre più vicino. Va tutto bene, ma un po 'più di quanto avessi sperato.
Sei dopo una matrice dei nomi di proprietà di 'persone'? –
Stai provando a creare una parte di codice riutilizzabile in cui è possibile specificare qualsiasi proprietà e recuperare il set di rappresentazioni stringa? La situazione di – Tejs
è che esiste un oggetto poco esteso di molte proprietà e un'API vorrebbe vederle una colonna alla volta anziché una riga alla volta. – sgtz