• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

256
Views
verificar si un tipo de propiedad dado es un tipo de (lista <>)

Tengo tres listas como List<EmpRoles> , List<EmpVisibility> , List<EmpProps>.

Ahora quiero realizar ciertas operaciones en ellos. Para esto primero tengo que comprobar si la propiedad es de tipo lista o no. Tengo uso si bloque algo como a continuación

 if ( propertyName == "EmpRoles" || propertyName == "EmpVis" || propertyName == "EmpProps")

¿Hay alguna forma mejor de hacer esto, o es posible poner algún tipo de (lista <>) condiciones? Sé que typeof(list<>) no funcionará aquí. O tengo que usar typeof (lista) ... ¿Alguien puede ayudar a crear una forma genérica de identificar las propiedades del tipo de lista?

about 3 years ago · Santiago Trujillo
2 answers
Answer question

0

Verificar que un tipo es List<T> requiere asegurarse de que:

  • el tipo es genérico comprobando su propiedad IsGenericType ,
  • la base de tipo genérico es System.List<> comprobando el resultado de GetGenericTypeDefinition() contra typeof(List<>)
  • el tipo T es el que desea al marcar GetGenericArguments()

Si se cumplen las tres condiciones, tienes tu tipo:

 var pt = myProperty.PropertyType; if (pt.IsGenericType && pt.GetGenericTypeDefinition() == typeof(List<>)) { var elementType = pt.GetGenericArguments()[0]; if (elementType == typeof(EmpRoles)) { ... } else if (elenentType == typeof(EmpVisibility)) { ... } else if ... }
about 3 years ago · Santiago Trujillo Report

0

Puede obtener un parámetro genérico de la lista de la siguiente manera

 var list = new List<EmpRoles> var argType = list.GetType().GenericTypeArguments[0];

Aquí en argType obtendrá typeof(EmpRoles)

about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error