Я пытаюсь перебрать свойства класса. Это работает нормально, пока я не получу свойство, которое определено как список. Есть ли простой способ справиться с этим, потому что я уверен, что есть, но, к сожалению, я не могу найти решение.
Когда я перебираю свойства, правильные значения для определенного класса будутпоказано, но только если это одно значение, я не могу получить список значений. если я использую итерацию свойства, список свойств будет отображаться как
System.Collections.Generic.List`1 [System.Double].
Небольшой фоно моей программе. Я динамически создаю List
своего класса с различными значениями для свойств, поэтому важно, чтобы я получил правильные значения для правильного класса.
...
for(int j = 0; j<intensityList.Count; j++) {
getIntensityofMode(intensityList[j]);
Report.Log(ReportLevel.Info, "");
Console.ReadLine();
}
}
public void getIntensityofMode(HelpingClasses.IntensityData mode) {
Type type = typeof(HelpingClasses.IntensityData);
PropertyInfo[] properties = type.GetProperties();
foreach (PropertyInfo property in properties)
{
if(property.GetValue(mode, null) != null) {
Report.Log(ReportLevel.Info, property.Name + " = " + property.GetValue(mode, null));
if(property.PropertyType.IsGenericType &&
property.PropertyType.GetGenericTypeDefinition() == typeof(List<>)) {
Report.Log(ReportLevel.Info,"its a list");
foreach()
//iterate through the property which is a list and holds several values
{
}
}
} else {
Report.Log(ReportLevel.Info, property.Name + " = NaN");
}
}
Так что я думаю, мне просто нужно написать одинстрока в цикле foreach
, чтобы получить то, что я пытаюсь получить, но я не знаю, как с этим справиться.
//variables
public string TxVoltagePulseMode{ get; set; }
public double TxVoltagePulseDB{ get; set; }
public double TxVoltagePulseVoltage{ get; set; }
public List<double> TxFocusdepth{ get; set; }
Так что все работает с кодом, кроме TxFocusdepth
.