Метод расширения Collection.ToList <TResult>() вызывает ошибку времени компиляции - PullRequest
2 голосов
/ 08 октября 2010

Я не могу использовать ToList<Tresult>() метод расширения. Код, который я использую,

 return this.Semesters.ToList<ISemester>()

'Semesters' в приведенном выше коде является EntityCollection. Эти директивы с использованием уже существуют,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

Тем не менее я не могу скомпилировать, так как он продолжает жаловаться, что System.Data.Objects.DataClasses.EntityCollection<Semester> не содержит определения 'ToList' и лучшая перегрузка метода расширения System.Linq.ParallelEnumerable.ToList<TSource>(System.Linq.ParallelQuery<TSource>) имеет некоторые недопустимые аргументы

Ответы [ 4 ]

2 голосов
/ 08 октября 2010

Вы уверены, что Semester реализует ISemester? В качестве теста я сделал это

interface ISemester { }
class Semester : ISemester { }

// ...

List<Semester> Semesters = new List<Semester>();
var query = Semesters.ToList<ISemester>();

Что хорошо. Однако измените класс просто на class Semester { }, и синтаксически схожая ошибка будет с той, о которой вы сообщали.

1 голос
/ 08 октября 2010

Отсутствует ссылка на сборку System.Core?Это, вероятно, сделает это ...

РЕДАКТИРОВАТЬ: должно быть что-то в пространстве имен System.Linq, или это не удалось бы скомпилировать.Я подумал, что, возможно, PFX заставляет этот бит работать ... но при условии, что вы используете .NET 4, класс ParallelEnumerable также в System.Core.

Что произойдет, еслиВы вводите Enumerable. - это показывает что-нибудь?

0 голосов
/ 28 мая 2015

Я собираюсь предположить, что ваш класс Semesters не наследует IEnumerable<TSource>. Я говорю это, потому что для использования ToList<TSource> TSource должно быть Enumerable

https://msdn.microsoft.com/en-us/library/vstudio/bb342261%28v=vs.100%29.aspx

0 голосов
/ 08 октября 2010

Вы пропустили

System.Data
System.Data.DataSetExtensions
System.Data.Entity

в ваших ссылках?

...