IEnumerable

MM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Witajcie, od jakiegoś czasu trudzę się nad kodem z użyciem interefejsu IEnumerable. Może zacznę od kodu:

Np:

Kopiuj
public class Product 
{
public int ProductID{get;set;}
...
...
}

public class ValueCalculator{

public decimal ValueProducts(IEnumerable<Product> products)
{
return products.Sum(p=>p.Price);
}

I teraz pojawia się moje pytanie. Dlaczego w metodzie ValueProducts używamy IEnumerable? Czy nie moglibyśmy użyć zwyczajnie Product products? Na jakiej zasadzie to działa?
Da radę wytłumaczyć to tak łopatologicznie, aby największy tłumok (czyt. ja) mógł ogarnąć o co w tym chodzi?

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0
Michał Mamełka napisał(a):

Dlaczego w metodzie ValueProducts używamy IEnumerable? Czy nie moglibyśmy użyć zwyczajnie Product products?

Ale chodzi o to, żeby policzyć cenę wielu produktów, a nie jednego, czyż nie?

Aventus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: UK
  • Postów: 2235
1

Product products to bylby jeden obiekt. IEnumerable<Product> products to kolekcja obiektow.

WeiXiao
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5226
1

Czy nie moglibyśmy użyć zwyczajnie Product products?

Patrz na typ, a nie na nazwę, która w tym wypadku jest(byłaby) myląca :P

Gdy robisz liczbę mnogą (np. +s np. cars) to zazwyczaj jest to kolekcja np. tablica, lista, itd...

MM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

I wszystko jasne. IEnumerable pozwala korzystać z foreacha więc stąd klasa Product została do niego przekazana. Dzięki wielkie za pomoc :)

  • Rejestracja: dni
  • Ostatnio: dni
0

ok, a dlaczego uzywa się IEnumerable - a nie wprost tablicy, czy listy?
jakie płyną z tego korzyści?

kzkzg
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 935
0

Takie właśnie ze możesz w parametrze użyć zarówno tablicy jak i listy czy czegokolwiek innego co implementuje ten interfejs.

  • Rejestracja: dni
  • Ostatnio: dni
0

Tak też myślałem

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.