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

Ошибка компиляции С# Array.Contains()

Я пытаюсь использовать метод Array.Contains() в С# и по какой-то причине не удается скомпилировать его, хотя считаю, что я использую С# 4.0, а С# должен поддерживать это в версии 3.0 и более поздних.

if (! args.Contains ("-m"))
    Console.WriteLine ("You must provide a message for this commit.");

И я получаю эту ошибку:

Main.cs(42,15): ошибка CS1061: "System.Array" не содержит определения для "Содержит" и не используется метод расширения "Содержит", принимающий первый аргумент типа "System.Array" (вам не хватает директивы using или ссылки на сборку?)

Я компилирую из командной строки без параметров: "csc Main.exe".

4b9b3361

Ответ 1

Вам нужно добавить using System.Linq; в начале вашей программы.

Ответ 2

Вы забыли using System.Linq?

Кстати, если вы не можете использовать LINQ, есть много других опций, таких как Array.Exists.

Ответ 3

Если вы не хотите использовать linq try

((IList<string>)args).Contains("-m")

Ответ 4

У меня была такая же проблема, и у меня была

using System.Linq

Это было потому, что я пытался сравнивать строку с int, но как-то это говорил

'System.Array' не содержит определения для 'Contains'

Ответ 5

используйте System.Linq Это получает меня каждый раз

Ответ 6

Убедитесь, что вы используете правильную версию CSC (csc/?) - вам нужна версия 2010 для компиляции для 4.0. Вам также может потребоваться добавить дополнительные библиотеки (опция/r) для компиляции для успеха.

Ответ 7

Ответы, в которых говорится о включении System.Linq, можно найти, но есть и другая причина этой проблемы. Если тип аргумента для.Contains() не соответствует типу массива, вы получите эту ошибку.

public class Product
{
    public long ProductID {get;set;}
}

public IEnumerable<Product> GetProductsByID(int[] prodIDs)
{
    using (var context = new MyDatabaseContext())
    {
        return context.Products.Where(product => prodIDs.Contains(product.ProductID)); // ['System.Array' does not contain a definition for 'Contains'] error because product.ProductID is long and prodIDs is an array of ints.
    }
}