System.Array. не содержит определения "ToList" - PullRequest
32 голосов
/ 04 апреля 2011

Я получаю вышеуказанную ошибку в строке ToList () кода ниже

if (emailReplyTo != null)
{
  System.Collections.Generic.List<String> replyto
    = emailReplyTo
    // Strip uneccessary spaces
    .Replace(", ", ",")
    .Split(',')
    .ToList();

  request.WithReplyToAddresses(emailReplyTo);
}

Я включил using System.Collections; в верхней части моего файла.Целевой фреймворк 3.5, так почему это вызывает ошибку?

Ответы [ 6 ]

90 голосов
/ 04 апреля 2011

Метод ToList, который вы ищете, является методом расширения. Попробуйте добавить эту директиву using в начало вашего файла:

using System.Linq;

Добавляя эту директиву using, вы указываете компилятору, что любые методы расширения в этом пространстве имен должны быть импортированы. Обидно, что Visual Studio больше не помогает в импорте методов расширения (ReSharper делает это довольно хорошо).

9 голосов
/ 21 ноября 2015

В случае, если кто-то наткнется на эти вопросы после поиска в Google ...

У меня была точно такая же проблема в Просмотр бритвы , и добавление using System.Linq вверху не помогло.

Что помогло, так это вызов .Cast() перед использованием методов расширения Linq:

myArrayVariable.Cast<SomeClass>().ToList() //ok, NOW ToList works fine
8 голосов
/ 24 мая 2013

Вы также можете сделать это без .toList, сохраняя, включая всю библиотеку, без реальной причины.

новый список (массив)

8 голосов
/ 04 апреля 2011

ToList () - это метод расширения.Может быть, вам не хватает

using System.Linq;
6 голосов
/ 04 апреля 2011

Это просто потому, что ArrayList не предоставляет метод с именем ToList.

См. на этой странице MSDN для просмотра таблицы доступных членов.

Как объяснили другие, вы можете получить доступ к этому методу extension , импортировав библиотеку Linq:

using System.Linq;

Также см. Эту ссылку для пользовательской реализациитаких, если вы хотите реализовать один.

3 голосов
/ 04 апреля 2011

Это потому, что методы расширения Enumerable недоступны.

Вам необходимо добавить «using System.Linq»

...