2010-06-03 3 views
2

Я пытаюсь изучить немного LINQ, но у меня проблемы с компиляцией с места в карьер. Есть ли какая-то конкретная причина, почему это не сработает?Простой поиск LINQ в C#

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


namespace HelloLINQ { 

    class HelloLINQ 
    { 
     public static void Main() 
     { 
      Example1(); 
     } 


     public static void Example1() 
     { 
      var numbers = new int[] { 1, 5, 3, 7, 3, 8, 9, 3, 6, 6, 2 }; 
      var under5 = from n in numbers 
         select n; 
      foreach (var n in under5) 
      { 
       Console.WriteLine(n); 
      } 
     } 
    } 
} 

Ошибка:

Не удалось найти реализацию шаблона запроса для исходного типа 'ИНТ []'. «Выбрать» не найдено. Вам не хватает ссылки на «System.Core.dll» или директиву для «System.Linq»?

+0

Вы пробовали это со списком , а не int []? – Lazarus

+3

Ошибка ясна. Вам не хватает ссылки на правильную версию System.Core.dll? Он должен работать, если это не так. –

ответ

2

У нас есть сообщение об ошибке, тщательно написанное сотрудником Microsoft, чтобы быть полезным, поэтому давайте посмотрим на него.
Could not find an implementation of the query pattern for source type 'int[]'. 'Select' not found. Are you missing a reference to 'System.Core.dll' or a using directive for 'System.Linq'?
int[] - базовый тип C#. Где расположены основные типы C#? System.Core. И ошибка упоминает проверку ссылки на System.Core. Итак, есть ли ссылка на System.Core?
Чтобы проверить это:
Solution Explorer-> Ссылки. В списке вы видите System.Core?
Если нет, странно, но это легко можно добавить. Щелкните правой кнопкой мыши ссылки, посмотрите в .NET для System.Core, добавьте его и вуаля.

+0

'int []' не находится в 'System.Core'. Методы расширения LINQ. –

+0

Вы хотите поделиться, где он расположен? – citronas

+0

@Matti: Не является ли System.Core базой CLR? Или это был mscorlib? – Rubys

2

У вас есть ссылка на System.Core в вашем проекте? Все остальное верно.

Смежные вопросы