@STDray: (1) Nu este invariabilul evident? secvența elementelor pieselor coincide cu secvența inițială, chiar dacă este neschimbată. (2) în codul de producție, nu puteți schimba ușor semnătura metodei dacă, desigur, mai mult de o persoană lucrează la proiect. În plus, compilatorul nu schimbă listele mutabile - sursa lui wtf ("Mi sa dat o listă
Dacă cineva decide să schimbe piesele, atunci nu există o astfel de invarianță pentru corespondența colecției originale. Nu contează dacă lista este mutată sau dacă este generată o nouă colecție. Desigur, va trebui să schimb semnăturile, altfel de ce avem nevoie de limbi tipizate. Dacă o persoană primește o listă, este liber să o schimbe. Bine. - STDray 22 aprilie '13 la 15:26
@VladD, dacă aveți criterii de necesitate, este mai bine să le specificați dintr-o dată. Și trebuie să fie specificate și motive inteligibile, deoarece am scris deja că este important să știm cu ce fel de colecție avem de-a face. Pe scurt, sunt ghidată de principiul: cerințele minime la intrare, maximul - la ieșire. - STDray 22 aprilie '13 la 12:15
@VladD, formează un leneș IEnumerabil> poate fi prea scump pentru a face cu memorie, în timp ce necesită aceeași trecere. Scenariul meu tipic este de a obține date de la o sursă externă și de a le manipula cu bucăți. Nu mă pot baza pe faptul că am destul memorie pentru tot. - STDray Apr 21 '13 la 11:32 pm
@STDray: cu toate acestea, vă bazați pe faptul că o singură bucată de memorie este suficientă. Nu sunt sigur că este posibilă o defalcare totală, cel puțin nu văd o cale evidentă. (Acest lucru este complicat de faptul că utilizatorul poate trece mai întâi prin ultima piesă.) - VladD 21 aprilie '13 la 23:37
@VladD, o singură bucată este suficientă, pentru că am ales dimensiunea ei. Voiam să subliniez structurile de date selectabile. Dacă le alegeți în mod corect, înțelegându-le dispozitivul, puteți evita orice complicații. De exemplu, știind că, în general, chiar Count () pentru IEnumerable
@STDray: din moment ce TS nu vorbeste despre specificul sarcinilor sale, trebuie sa ghicim. - Pentru modelul tău, poate eu numărare<> este inutil: înțelesul său este doar în procesarea cu un element, nu cu n. leneș lectându-le, esti în esență folosind lectură bloc. - VladD 21 aprilie '13 la 11:51 pm