Нет необходимости преобразовывать в объект, поскольку все типы в среде выполнения .NET наследуются от объекта.
Если вы хотите назначить членов списка Form1.AnimalTypes
в комбинированный список, вы можете просто добавить их в коллекцию Items
, а затем установить DisplayMember
на имя свойства, которое вы хотите отобразить, и ValueMember
на имя свойства, которое вы хотите связать.
comboBox.Items.AddRange(Form1.AnimalTypes);
comboBox.DisplayMember = "AnimalTypeName";
comboBox.ValueMember = "AnimalTypeId";
Если вы хотите выполнить только преобразование, и назначение в поле со списком не имеет значения, вы можете сделать следующее:
object[] myArray = Form1.AnimalTypes.ToArray();
Класс преобразователя необходим для преобразований, которые не определены наследованием объекта, то есть используйте преобразователи, если вы хотите преобразовать яблоки в апельсины, но используйте приведение, если вы хотите преобразовать апельсины или апельсины в фрукты. В c # 3.0 вы можете разыграть полную коллекцию, используя следующий фрагмент:
var newColOfBaseType = myList.Cast<BaseType>();
Используя Linq, вы также можете фильтровать записи данного типа из коллекции и затем извлекать коллекцию этого определенного типа:
var oranges = fruit.OfType<Orange>().Cast<Orange>();
Используя Linq, вы также можете использовать Select
для преобразования:
var oranges = apples.Select(new Orange() { /* ... and initializers here ...*/});