Подтвердить что ты не робот

System.Array. не содержит определения для "ToList"

Я получаю вышеуказанную ошибку в строке 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, так почему это вызывает ошибку?

4b9b3361

Ответ 1

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

using System.Linq;

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

Ответ 2

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

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

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

myArrayVariable.Cast<SomeClass>().ToList() //ok, NOW ToList works fine

Ответ 3

ToList() - это метод расширения. Возможно, вам не хватает

using System.Linq;

Ответ 4

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

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

Ответ 5

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

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

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

using System.Linq;

Кроме того, см. эту ссылку для пользовательской реализации таких, если вы хотите ее реализовать.

Ответ 6

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

Вам нужно добавить "using System.Linq"

Ответ 7

Это сработало для меня:

 var lst = ((IEnumerable<XElement>)doc.Element("cards").Elements("card")).ToList();

Мой первоначальный результат был просто динамичным. Метод .Cast() дал мне ту же ошибку, что и ToList(), но это помогло.