Member 13253943 Ответов: 2

Как преобразовать список дочерних интерфейсов в список родительских интерфейсов


класс AttachToObjectData : IData

У меня есть этот список из двух
m_attachObjectDataListToProcess = новый список & lt;attachtoobjectdata>();
createAndCheckInObjectDataList = новый список & lt;idata>();

у меня есть одна функция, где я хочу дать IData в качестве входных данных.

так что я хочу, чтобы преобразовать список<attachtoobjectdata> В список<idata по&ГТ;


например: updateDocument(IData)

теперь для этого вызова я хочу, чтобы данные были в IData

С уважением
Бхушан

Что я уже пробовал:

Я пытался
m_attachObjectDataListToProcess.Преобразование : не работает
m_attachObjectDataListToProcess
. Актерский состав : не работает

Richard Deeming

Разве это не тот же самый вопрос, который вы задавали на прошлой неделе?

https://www.codeproject.com/Questions/1200615/How-can-I-cast-child-to-parent-and-parent-to-child[^]

2 Ответов

Рейтинг:
0

Graeme_Grant

Измените определение m_attachObjectDataListToProcess к:

m_attachObjectDataListToProcess = new List<idata>();

Затем вы можете добавить AttachToObjectData объекты для m_attachObjectDataListToProcess как AttachToObjectData инвентарь idata интерфейс. теперь вы можете делать то, что пытаетесь.


Рейтинг:
0

TheRealSteveJudge

Если у вас есть такой интерфейс

public interface IData
{
    string Value { get; set; }
}

и класс, реализующий этот интерфейс
public class Data : IData
{
    public string Value { get; set; }
}

и список данных, как это
var dataList = new List<Data>
{
    new Data {Value = "A"},
    new Data {Value = "B"}
};

вы могли бы бросить в Идату вот так:
var iDataList = dataList.Cast<IData>();