Используя отражение, я хотел бы получить только свойства встроенного типа данных из объекта C #.Есть ли лучший способ сделать это, используя группу || (или) в методе Where, указав интересующие меня типы?
||
Where
Type sourceType = typeof(TSource); var props = sourceType.GetProperties() .Where(pi => pi.PropertyType == typeof(int) || pi.PropertyType == typeof(string)); // .... etc.
Все они находятся в пространстве имен System, так что вы можете, по крайней мере, фильтровать пространство имен, кроме этого, по крайней мере, список не слишком длинный.Вы бы не связали Где, вы бы использовали ||, этот код не будет работать.
Вы ищете интегральные типы для BCL?Или только типы значений?(IE целое число, символ и т. Д.)
Если это так, вы можете проверить на pi.PropertyType.IsPrimitive (), а затем проверить тип строки как часть предложения or ...
var props = sourceType.GetProperties() .Where(pi => .PropertyType.IsPrimitive || pi.PropertyType == typeof(string))