J'ai une classe MyClass, et je voudrais remplacer la méthode ToString() des instances de la liste:Redéfinition ToString() de la liste <MyClass>
class MyClass
{
public string Property1 { get; set; }
public int Property2 { get; set; }
/* ... */
public override string ToString()
{
return Property1.ToString() + "-" + Property2.ToString();
}
}
Je voudrais avoir les éléments suivants:
var list = new List<MyClass>
{
new MyClass { Property1 = "A", Property2 = 1 },
new MyClass { Property1 = "Z", Property2 = 2 },
};
Console.WriteLine(list.ToString()); /* prints: A-1,Z-2 */
Est-il possible de le faire? Ou je devrais sous-classe Liste < MyClass> pour remplacer la méthode ToString() dans ma sous-classe? Puis-je résoudre ce problème en utilisant des méthodes d'extension (ie, est-il possible de surcharger une méthode avec une méthode d'extension)?
Merci!
Pour information: J'essayais de faire quelque chose en rapport avec NHibernate, et le mappage des collections dans une chaîne sérialisée qui correspondrait à une seule colonne. Cependant j'ai trouvé une autre façon de le faire, en implémentant mon propre IUserType, et mon implémentation construit la chaîne comme j'en ai besoin! Merci à tous ceux qui ont répondu quand même! –