2010-07-21 13 views
7

W konkretnym projekcie w mojej pracy, mam metodę, która zwraca IList. Ale ten interfejs nie zawiera miejsca ani filtrów FindAll. Jednak kiedy otworzę nowy projekt, IList zawiera wszystko. Jaka jest różnica?IList nie ma "gdzie"

Odpowiedz

25

Czy importowałeś System.Linq?

+2

Dziękuję bardzo. Co za głupi błąd ... – bileyazan

+2

Powinieneś przyjąć odpowiedź Scotta, jeśli jest właściwa. –

+0

@bileyazan - Zgadzam się z @Will Dean, ważne jest, aby zaakceptować odpowiedzi, które pomogą Ci z SO. To nie tylko daje reputację referenta, ale pozwala przyszłym pracownikom Google'a dowiedzieć się, która odpowiedź pomogła ci rozwiązać problem. –

5

Nie. IEnumerable<T> ma "gdzie" jako metodę rozszerzenia.

Zakładając, że projekt jest .Net 3.5 lub wyższa, trzeba mieć using System.Linq;

+0

'IEnumerable ' masz na myśli. :) Zwykły "IEnumerable" nie jest obsługiwany przez LINQ - najpierw musisz wykonać 'Cast' /' OfType'. – Noldorin

+0

@Noldorin: Tak, faktycznie miałem '', ale zapomniałem umieścić go w bloku kodu i StackOverflow stracił go ... prawdopodobnie został wyrenderowany jako znacznik HTML. Dzięki :) –

0

Sprawdź .NET Framework otwartych ram, może być jej .NET Fx 2.

System.Linq dodano 3,5

0

Here's a basic discussion of extension methods w ogóle. Jak wspominają inni, metoda Where jest metodą rozszerzenia znajdującą się w przestrzeni nazw System.Linq, więc musisz ją zaimportować, aby intellisense wykryło istnienie tych metod.

Powiązane problemy