Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
15 / 15 / 5
Регистрация: 07.02.2013
Сообщений: 123
1

Как можно выполнить преобразование списка с базовым типом в список с производным?

24.11.2013, 02:18. Показов 567. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Поодиночке я делаю это с помощью такого конструктора:
C#
1
DerivedClass(BaseClass bc) {}
Следовательно, выполнить приведение каждого элемента словаря в цикле, возможно, как и перегрузить в базовом классе оператор приведения от производного, но это будет криво.

Нужно преобразовать List<BaseClass> в List<DerivedClass>
Как сделать это правильно? (без циклов)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2013, 02:18
Ответы с готовыми решениями:

Объект с базовым типом вектор и производным матрицей.Нужно лишь несколько советов
Необходимо произвести скалярное умножение двух векторов и суммирование матрицы. Пытался делать,но...

Для каждого бинарного дерева выполнить преобразование дерева в список, результат вывести в виде списка списков
Объясните почему не работает, задание было таким &quot; Дан список, элементы которого — непустые...

Что называется базовым типом множества
Следующий вопрос, что называется базовым типом множества? Я предполагаю следующий ответ: это тип...

Заданные множественные числа элементов с базовым типом byte: А=[1,3,5,7,9], В=[3, 5, 9]
Выбрать все элементы множественного числа А, что не принадлежат В, и вывести их значение на печать....

4
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
24.11.2013, 02:38 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    static class Program
    {
        [STAThread]
        static void Main()
        {
            List<Base> baseList = new List<Base>() { new Drived(), new Drived(), new Drived(), new Drived() };
            List<Drived> drivedList = baseList.Cast<Drived>().ToList();
        }
    }
 
    class Base
    {
 
    }
 
    class Drived : Base
    {
 
    }
1
15 / 15 / 5
Регистрация: 07.02.2013
Сообщений: 123
24.11.2013, 03:00  [ТС] 3
Только мне нужно преобразовать объекты Base в Derived. Ссылка базового класса и ссылается на объект базового.
Нужно что то вроде перегрузки оператора присваивания в С++, где я самостоятельно задам алгоритм преобразования базового в производный.
C#
1
List<Base> baseList = new List<Base>() { new Base(), new Base() };
Каким образом List<> выполняет копирование элементов? Может нужно реализовать какой то интерфейс?
0
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
24.11.2013, 03:04 4
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    static class Program
    {
        [STAThread]
        static void Main()
        {
            List<Base> baseList = new List<Base>() { new Base(), new Base(), new Base(), new Base() };
            List<Drived> drivedList = baseList.Select(b => new Drived(b)).ToList();
        }
    }
 
    class Base
    {
 
    }
 
    class Drived
    {
        public Drived(Base b)
        {
 
        }
    }
1
15 / 15 / 5
Регистрация: 07.02.2013
Сообщений: 123
24.11.2013, 03:10  [ТС] 5
Спасибо)
0
24.11.2013, 03:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2013, 03:10
Помогаю со студенческими работами здесь

Описать тип указатель, базовым типом которого является массив
Описать тип указатель, базовым типом которого является массив с максимальной размерностью 50...

Создание гибких подпрограмм для обработки матриц произвольного порядка с фиксированным базовым типом
Даны две прямоугольные матрицы разных размеров. Упорядочить строки каждой из них по не убыванию...

Даны 2 множества А и В с одним и тем же базовым типом. Определить новое множество ,равное пересечению А и В.
Даны 2 множества А и В с одним и тем же базовым типом. Определить новое множество ,равное...

Создание гибких подпрограммы для обработки матриц произвольного порядка с фиксированным базовым типом
Даны две прямоугольные матрицы разных размеров. Упорядочить строки каждой из них по не убыванию...

Создание гибких подпрограмм для обработки матриц произвольного порядка с фиксированным базовым типом
Даны две квадратные матрицы разных порядков. Для каждой из матриц найти минимальное из значений...

Выполнить преобразование дерева в список - пролог 5.2
Дан список, элементы которого — непустые бинарные деревья с числами в качестве вершин. Для каждого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru