IEnumerable

0

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

Np:

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?

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?

1

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

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...

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 :)

0

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

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.

0

Tak też myślałem

1 użytkowników online, w tym zalogowanych: 0, gości: 1