2012-07-23 8 views
5

¿Cómo se convierten los nombres de las propiedades públicas de una clase en una lista de cadenas? Sintaxis preferiblemente en VB.NET.Convertir propiedades de clase en una lista de cadenas

yo estaba tratando de hacer algo como esto:

myClassObject.GetType().GetProperties.ToList() 

Sin embargo, necesito una lista (de cadena)

+0

obtener el nombre de cada propiedad. – Oded

Respuesta

12

Obteniendo el nombre de cada propiedad? Use LINQ para proyectar cada PropertyInfo usando el método LINQ Select, seleccionando la propiedad MemberInfo.Name.

myClassObject.GetType().GetProperties().Select(p => p.Name).ToList() 

O en VB, yo creo que sería:

myClassObject.GetType.GetProperties.Select(Function (p) p.Name).ToList 
+0

¡Gracias! ¿Es posible hacer esto en el nivel de clase en lugar de a nivel de objeto? ¿Puedo hacer Class.GetProperties() o algo similar? – Prabhu

+1

@Prabhu sí, cambie 'myClassObject.GetType()' a 'GetType (ClassName)' –

+1

@Prabhu: O 'typeof (Foo) .GetProperties()' en C#. –

2
var propertyNames = myClassObject.GetType().GetProperties().Select(p => p.Name).ToList(); 

O si lo sabe el tipo que desea utilizar con antelación, usted puede hacer:

var propertyNames = typeof(ClassName).GetProperties().Select(p => p.Name).ToList(); 
Cuestiones relacionadas