web-dev-qa-db-fra.com

Parcourez les propriétés d'un objet et obtenez les valeurs de celles de type DateTime

J'ai une liste d'objets (Voitures). Pour chaque voiture de la liste, je dois la parcourir et trouver toutes les propriétés de type DateTime. Si je trouve une propriété de DateTime j'ai besoin d'obtenir la valeur et de faire une conversion de temps. Pour l'instant, il suffit d'imprimer la valeur de la propriété DateTime sur la console. J'ai des problèmes pour comprendre ce que je dois mettre dans le premier paramètre du prop.GetValue une fonction. Toute aide serait appréciée!

foreach (var car in carList)
{  
    foreach (PropertyInfo car in car.GetType().GetProperties())
    {
        var type = Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType;
        if (type == typeof (DateTime))
        { 
            Console.WriteLine(prop.GetValue(???, null).ToString());
        }
    }
}
14
Sealer_05

Vous devez utiliser car comme premier paramètre:

foreach (var car in carList)
{  
    foreach (PropertyInfo prop in car.GetType().GetProperties())
    {
         var type = Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType;
         if (type == typeof (DateTime))
         { 
             Console.WriteLine(prop.GetValue(car, null).ToString());
         }
    }
}
21
Aybe