Итак, у меня есть ужасно разработанный класс, который я не могу изменить, у которого есть такие свойства:
object.Color1
object.Color2
object.Color3
и т.д ...
Как я могу перебирать те, у которыхпетля.Другими словами, что-то вроде этого:
for (int i = 0; i <= 40; i++)
{
string PropertyName = "Color" + i;
if (object.PropertyName != "")
{
// do something
}
}
Очевидно, что этот код не будет работать, но он дает вам представление о том, что мне нужно.Я должен выполнить некоторую обработку каждого свойства, и я не хочу повторять свой код 40 раз.:) Цикл был бы идеальным, я просто не уверен, как создать имя свойства на лету.
EDIT : Хорошо, поэтому я попробовал следующий код:
for (int i = 1; i <= 20; i++ )
{
var type = pendingProduct.GetType();
var colorProperty = type.GetProperty("Color" + i);
string colorValue = colorProperty.GetValue(type, null).ToString();
var colorSkuProperty = type.GetProperty("Color" + i + "SKU");
string colorSkuValue = colorSkuProperty.GetValue(type, null).ToString();
if (String.IsNullOrEmpty(colorValue)) continue;
ProductColor color = new ProductColor {Color = colorValue, ProductSizes = productSizes};
if (!String.IsNullOrEmpty(colorSkuValue)) color.SKU = colorSkuValue;
}
Я получаю сообщение об ошибке «Объект не соответствует типу цели» в этой строке:
string colorValue = colorProperty.GetValue(type, null).ToString();
Я что-то здесь не так делаю?