Отфильтровать некоторые свойства из списка объектов - PullRequest
0 голосов
/ 02 мая 2018

У меня есть список объектов (MyObject), который имеет 10 свойств.

Class MyObject{
   string F1,
    string F2,
   ....
   string F10
}

 var myList = new List<MyObject> ()

Из этого списка мне нужно отфильтровать некоторые свойства и получить новый список выбранных элементов в зависимости от входных данных, представленных в списке строк.

var requiredFlields = new List<String> {"F1", "F2"}

Я знаю это:

var o1 = myList.Select(a => new {  a.F1, a.F2 }).ToList();

но это не позволяет мне использовать список обязательных полей для фильтрации.

Есть ли способ достичь этого?

1 Ответ

0 голосов
/ 02 мая 2018

Вы можете получить информацию о свойствах из класса, используя функцию GetProperties(). Используйте ее для получения сведений обо всех свойствах.

Перебирайте каждое свойство и проверяйте, есть ли имя этого свойства в классе или нет.

Пример кода:

PropertyInf[] propertiesInfo = MyObject.GetType().GetProperties();
foreach(PropertyInfo item in propertiesInfo)
{
    if(requiredFields.Contains(item.Name))
        {
            //Do your operation here
        }
}

С помощью PropertyInfo вы можете проверить имя свойства, тип свойства, GetSetMethod ()

Для более подробной информации: PropertyInfo Class

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...