Я использую запрос linq, чтобы получить имена всех свойств всех классов, производных от некоторого указанного класса, например:
/// <summary>
/// Gets all visible properties of classes deriving from the specified base type
/// </summary>
private HashSet<string> GetDerivedPropertyNames(Type baseType)
{
// get all property names of the properties of types that derive from the base type
var propertyNames =
from type in baseType.Assembly.GetTypes()
where type.IsSubclassOf(baseType)
select Array.ConvertAll(type.GetProperties(), property => property.Name);
// the hashset constructor will filter out all duplicate property names
return new HashSet<string>(propertyNames);
}
, однако это не компилируется, поскольку результат запроса linqIEnumerable<string[]>
, тогда как я хотел получить IEnumerable<string>
.как мне свести результаты в один IEnumerable<string>
?