Я пытаюсь получить список отображаемых имен из класса, большинство свойств которого имеют логические значения:
public class AccessoriesModel
{
public int Id { get; set; }
[Display(Name = "Acc 1")]
public bool Accessory1 { get; set; }
[Display(Name = "Acc 2")]
public bool Accessory2 { get; set; }
[Display(Name = "Acc 3")]
public bool Accessory3 { get; set; }
[Display(Name = "Acc 4")]
public bool Accessory4 { get; set; }
}
перебирая PropertyInfos класса и проверяя, какие значения верны, как показано ниже:
List<string> list = new List<string>();
foreach (PropertyInfo propertyInfo in data.GetType().GetProperties())
{
if (propertyInfo.PropertyType == typeof(bool))
{
bool value = (bool)propertyInfo.GetValue(data, null);
if (value)
{
//add the DisplayName of the item who's value is true to the list named "list"
//the following line works fine, but I cannot iterate over the list of items to get dinamicaly build the list
string displayName = GetPropertyDisplayName<AccessoriesModel>(i => i.AirConditioning);
list.add(displayName)
}
}
}
где GetPropertyDisplayName — это решение, предложенное другим участником в его ответе на другой вопрос для получения DisplayName свойства: https://stackoverflow.com/ а/10048758а>
Конечным результатом, который я ищу, является список строк (отображаемых имен), которые будут сформированы только истинными свойствами.
Заранее благодарю вас за помощь в этом.