J'ai écrit le code suivant pour récupérer les StructureId
s d'un IEnumerable<Structure>
:Puis-je utiliser l'action <T> pour effectuer une recherche récursive et renvoyer un IEnumerable d'une propriété spécifiée?
Action<Structure> recurse = null;
List<int> structureIds = new List<int>();
recurse = (r) =>
{
structureIds.Add(r.StructureId);
r.Children.ForEach(recurse);
};
IEnumerable<Structure> structures = GetStructures();
structures.ForEach(recurse);
Je voudrais vraiment faire de ce générique je peux donc l'utiliser avec tout IEnumerable, à savoir quelque chose comme:
public static IEnumerable<TType> GetPropertyValues<TType, TPropertyType>(
this IEnumerable<TType> this, <Property Declaration>)
{
// Generic version of the above code?
}
Est-ce que cela peut être fait?
Peut-il être fait? Oui. Quelqu'un pourrait-il encore comprendre votre code? – Steven
@Steven - Voir la réponse acceptée. C'est très compréhensible et fonctionne avec brio. – GenericTypeTea