Трудно сказать, как именно это можно сделать, потому что пример кода неполон.Однако из того, что я могу понять, у вас есть IEnumerable<TSource>
, и вы хотели бы выполнить одну и ту же операцию для всех свойств для всех элементов в этой последовательности?
Это требует нескольких вещей,первый взгляд на SelectMany
.Это проецирует каждый элемент в источнике в новую последовательность, объединяя их все в одну последовательность.
Во-вторых, как создать IEnumerable<TResult>
из всех свойств каждого элемента.Это не так просто!Если бы ваш Prop0
, Prop1
мог бы быть сохранен как словарь, который бы помог!
Вы могли бы использовать отражение.Примерно так:
IEnumerable<MyObject> source = ///your source
var allProperties = source.SelectMany(s =>
typeof(MyType).GetProperties().Select(p => p.GetValue(s, null));
Однако, поскольку строки неизменны, если вы зашифруете полученную последовательность, ваши исходные экземпляры MyObject
не будут отражать это изменение.
Если вы действительно хотите сделать это, храните ваши свойства в словаре!