No entiendo por qué esto falla.
Supongo que su pregunta es "¿por qué esto no funciona?" (Se le olvidó preguntar en realidad una pregunta en su pregunta.)
El método "Donde()", obviamente, no va a regresar la colección original
correcta. "Where" devuelve un IEnumerable<T>
que representa la colección con un filtro puesto encima.
así que no estoy enumerando alrededor de la colección original cuando intento eliminar algo de ella.
Incorrecto. Usted es enumerando la colección original. Está enumerando la colección original con un filtro sobre ella.
Cuando llama a "Dónde" no evalúa con entusiasmo el filtro y produce una nueva copia de la colección original con el filtro aplicado. Por el contrario, le da un objeto que enumera la colección original, pero omite los elementos que no coinciden con el filtro.
Cuando estás en una tienda y dices "muéstrame todo", el chico que te muestra todo te muestra todo. Cuando dices "ahora solo muéstrame las manzanas que están entre $ 1 y $ 5 por kilogramo", no estás construyendo una tienda completamente nueva que solo tenga manzanas en ella.Estás viendo exactamente la misma colección de cosas que antes, solo con un filtro.
Hay algo que no entiendo sobre esta cosa "Cosa". Ciertamente no es una cosa tipo de construcción ¿verdad? Alguien me ilumina ... – Deb
Lo siento si la pregunta era confusa. La cosa podría ser cualquier clase y myCollecion es cualquier ICollection. FWIW Eric ha entendido y respondido completamente a mi pregunta original, por lo que está cerrada por lo que a mí respecta. –
Andy