Кодирование в списке с помощью GetType - PullRequest
0 голосов
/ 10 июля 2020

Я хотел бы добавить здесь условие, чтобы получать только типы! = Int.

List<IMyLayouts> list = query.GetType().
GetProperties(BindingFlags.Public).
Select(l => (IMyLayouts)l.GetValue(query, null)).ToList();

но

.Where(l => (IMyLayouts)l.GetTYpe() != typeof(int)

это не работает, я ищу inte rnet об этом, но я ничего не могу найти: |

1 Ответ

1 голос
/ 10 июля 2020

Я не уверен, какова ваша цель, но если вы хотите просто найти целые типы в списке, вы можете использовать метод oftype .

Например, вы можете сделать следующее:

var intList = from s in mylist.OfType<int>()  
select s;  
foreach (var item in intList)  
{  
   Console.WriteLine(item);  
} 

он также работает со сложными объектами. Мы предполагаем, что Клиент - это класс или интерфейс. Чем вы можете сделать, как показано ниже:

var customerList = from s in mylist.OfType<Customer>()  
select s;  
foreach (var customer in customerList)  
{  
   Console.WriteLine(customer.Name);  
 }

UPDATE

Для поиска всех определенных типов в классе, кроме целочисленных, вы можете сделать, как показано ниже :

IEnumerable<System.Reflection.PropertyInfo> types = typeof(MyClass).GetProperties().Where(p => p.PropertyType != 
typeof(int));
...