класса я хочу работать на обеспечивает добытчик типа IEnumerable<X>
и IEnumerable<Y>
где X & Y являются подклассами типа T. Я хочу, чтобы перебирать содержимое как лечащие их тип T. Есть ли удобный способ объединить оба в нечто, что можно увидеть как IEnumerable<T>
?Как вы можете создать коллекцию на основе нескольких IEnumerables
Пример:
IEnumerable<HeaderPart> headers = templateFile.MainDocumentPart.HeaderParts;
IEnumerable<FooterPart> footers = templateFile.MainDocumentPart.FooterParts;
List<OpenXmlPart> result = new List<OpenXmlPart>();
result.Concat<OpenXmlPart>(footers);
HeaderPart и FooterPart являются подклассами OpenXmlPart, но третья линия терпит неудачу:
'System.Collections.Generic.IEnumerable' не содержит определения для 'Concat' и лучший метод расширения перегрузка 'System.Linq.Enumerable.Concat (System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerabl е)» имеет некоторые недопустимые аргументы
Обратите внимание, я не могу изменить либо из исходных данных, мне нужно, чтобы создать новую коллекцию - на самом деле я хочу сделать foreach
над ним. .
Ни один из типов, которые я пытаюсь использовать, не имеет метода Concat ... Что вы имеете в виду? –
Я получил свои комментарии, испорченные, измененные. –
@John: В какой версии .NET вы используете? –