Ecriture de méthode d'extension
Bonjour,
Avec le bout de code suivant, j'ai cherché à écrire une fonction d'extension au type IEnumerable FirstOrNew qui renvoie le 1er objet de la liste ou un objet crée si la liste est vide.
Ensuite, je cherche à reécrire FirstOrNewSup avec une caractéristique supplémentaire. Par exemple, si mes T sont des comptes avec une propriété balance, je cherche à ce que FirstOrNewSup me renvoie le 1er compte avec plus de 100€ en balance!
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public static T FirstOrNew<T> (this IEnumerable<T> list)
//on suppose quele type qu'on manipule possède un constructeur par défaut
where T:new ()
{
if (list == null)
{
return new T();
}
else
{
return list.First();
}
}
public static T FirstOrNewSup<T>(this IEnumerable<T> list, Func<T, bool> selector)
{
return list.Where(selector).FirstOrNew();
} |
Mais j'ai une erreur de compilation car le FirstOrNew(); de la fonction d'extension FirstOrNewSup<T> est inconnue?! :calim2:
Quelqu'un a une idée?
Merci d'avance! :ccool: