Il n'y a pas besoin de convertir à objet comme tous les types dans l'exécution .NET héritent de l'objet.
Si vous souhaitez affecter les membres de la liste Form1.AnimalTypes
à un combobox vous devriez pouvez simplement les ajouter à la collection Items
et vous devez définir DisplayMember
au nom de la propriété que vous souhaitez afficher et ValueMember
au nom de la propriété que vous voulez lier.
comboBox.Items.AddRange(Form1.AnimalTypes);
comboBox.DisplayMember = "AnimalTypeName";
comboBox.ValueMember = "AnimalTypeId";
Si vous voulez avoir juste la conversion et l'affectation à la zone de liste déroulante n'a pas d'importance que vous pouvez faire ce qui suit:
object[] myArray = Form1.AnimalTypes.ToArray();
La classe convertisseur est nécessaire pour les conversions qui ne sont pas définies par l'héritage d'un objet, c.-à-d. utiliser des convertisseurs si vous voulez convertir des pommes en oranges, mais utiliser des conversions si vous voulez convertir des pommes ou des pommes en fruits. En C# 3.0, vous pouvez lancer une collection complète en utilisant l'extrait suivant:
var newColOfBaseType = myList.Cast<BaseType>();
LINQ, vous pouvez également Filte les entrées d'un type donné d'une collection, puis extraire une collection de ce type spécifique:
var oranges = fruit.OfType<Orange>().Cast<Orange>();
LINQ, vous pouvez également utiliser Select
pour faire une transformation:
var oranges = apples.Select(new Orange() { /* ... and initializers here ...*/});
Hmm je manque vraiment le point de classe Converter. Quelle est la différence entre ceci et écrire une méthode simple pour la conversion? – Petr
L'utilisation d'un convertisseur fera le « itérer sur chaque élément dans la liste » bit pour vous - vous fournir un délégué, et il l'applique à chaque élément dans une liste (en utilisant ConvertAll). Cela vous permet également de séparer la logique de conversion du reste de votre code - vous pouvez utiliser une classe d'usine ou quelque chose de similaire pour sélectionner un convertisseur approprié basé sur certaines variables. –