2013-10-02 3 views
-1

Я действительно путают о том, как использовать методы расширения ... Я пытаюсь использовать расширенный максимальный метод из http://msdn.microsoft.com/en-us/library/6sh2ey19.aspxКак использовать метод расширения Max?

Мой (упрощенный) Код:

namespace grades 
{ 
    public class Grades 
    { 
     private List<int> grades; 

     public int max() 
     { 
      return grades.Max(); // Not finding the extended Max function... 
     } 
    } 
} 

Могу ли я использовать это неправильно? Если кто-то может написать код для правильного использования этих расширенных методов?

+0

Что не работает? Что вы ожидаете? Что на самом деле происходит? Кроме того, переменная ваших оценок не ограничена вашим методом max(). – Michael

+0

Исправлено. Извините, скопируйте + вставить ошибку. – Shaku

+1

Какая * точная * ошибка, которую вы видите? Включили ли вы пространство имен, которое имеет метод расширения? – David

ответ

6

Добавить using System.Linq; имен

+0

О, ничего себе. Спасибо ... Нужен ли мне System.Linq для всех методов расширения, определенных в msdn? – Shaku

+0

@Shaku все определены в Linq, а не msdn – wudzik

+0

@Shaku вы должны немного прочитать о сборках, ссылках и использовании директив. – Michael

4

Enumerable.Max доступен в System.Linq namesapce. Вы должны добавить это.

using System.Linq; 

См: Extension Methods - MSDN

Наиболее распространенные методы расширений являются LINQ стандартного запроса операторами, которые добавляют функциональность запроса к существующему System.Collections.IEnumerable и System.Collections.Generic.IEnumerable типы. Чтобы использовать стандартные операторы запроса , сначала введите их в область действия с помощью директивы System.Linq . Тогда любой тип, который реализует IEnumerable, имеет , имеет такие методы экземпляра, как GroupBy, OrderBy, Average и т. Д. Вы можете увидеть эти дополнительные методы в инструкции IntelliSense , когда вы вводите «точку» после экземпляра типа IEnumerable , такого как List или Array.

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