Non capisco perché questo non funziona.
Suppongo che la tua domanda sia "perché questo non funziona?" (Hai dimenticato di chiedere in realtà una domanda nella sua interrogazione.)
Il metodo "Dove()" ovviamente non restituisce la collezione originale
corretta. "Dove" restituisce un IEnumerable<T>
che rappresenta la raccolta con un filtro posto sopra.
quindi non sto elencando intorno alla raccolta originale quando provo a rimuovere qualcosa da esso.
errato. È che elenca la raccolta originale. Stai elencando la raccolta originale con un filtro sopra di essa.
Quando si chiama "Dove" non valuta il filtro in modo impaziente e produce una nuova copia della serie originale con il filtro applicato. Piuttosto, ti dà un oggetto che enumera la collezione originale, ma salta gli oggetti che non corrispondono al filtro.
Quando sei in un negozio e dici "mostrami tutto", il ragazzo che ti mostra tutto ti mostra tutto. Quando dici "ora mostrami solo le mele che sono tra $ 1 e $ 5 al chilogrammo", non stai costruendo un negozio completamente nuovo che contiene solo mele.Stai guardando esattamente la stessa collezione di cose come prima, solo con un filtro su di esso.
fonte
2012-04-16 13:49:45
C'è qualcosa che non capisco di questa cosa "Cosa". Non è certamente una cosa tipo costruita? qualcuno mi illumina .... – Deb
Scusa se la domanda è stata confusa. La cosa potrebbe essere qualsiasi classe e myCollecion è qualsiasi ICollection. FWIW Eric ha completamente capito e risposto alla mia domanda originale, quindi è chiuso per quanto mi riguarda. –
Andy