Wpis z mikrobloga

witam koderzy, pytanie kieruję do tych w #csharp
Mianowicie, mam taki kod:


int numOfRows = 0;
foreach (var day in t.days)
if (day.lessonsNum > numOfRows)
numOfRows = day.lessonsNum;

i resharper pokazuje, że mogę go zmienić na

int numOfRows = t.days.Select(day => day.lessonsNum).Concat(new[] {0}).Max();
Pytanie brzmi, jakim cudem ma zwrócić mi wartość największą w liście t.days?
Oraz dlaczego w Concat podane jest new[] {0}
Z tego co wyczytałem, to List Concat. Two Lists can be combined. With the Concat extension method, we do this without a loop.
No to porównaj mi każdą wartość int, z ... 0 ? oraz zwróc wartość maxymalną..
Zastanawiam się, czy przypadkiem nie trzeba by było nawet
t.days.Select(day => day.lessonsNum).Max() skoro Select zwraca IEnumerable


#programowanie
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 1
@KontoUsuniete kwestia gustu :)
Twoja wersja ma plus, że jeśli t.Days byloby IEnumerable to nie ma ryzyka, że ewaluacja odbędzie się dwa razy. Ale nie chciało mi się wchodzić w takie szczegóły :)
  • Odpowiedz