Esta es probablemente una pregunta básica para algunos, pero afecta la forma en que diseño una parte de mi programa.LINQ: la expresión Where devuelve una nueva instancia o referencia a la instancia del objeto
que tienen una única colección de tipo A:
IEnumerable<A> myCollection;
estoy filtrando mi colección en 2 criterios diferentes:
IEnumerable<A> subCollection1 = myCollection.Where(x => x.Count > 10);
etc.
Ahora, sé que la expresión .Where devolverá una nueva instancia de IEnumerable, pero ¿la nueva colección contiene la misma referencia a una instancia de tipo A que 'myCollection' hace referencia, o son nuevas copias de tipo A creadas? Si se crean nuevas instancias de tipo 'A', ¿hay alguna manera de decir que 'subCollection1' hace referencia a las mismas instancias de A como referencias 'myCollection'?
Editar: Para añadir más aclaraciones.
Estoy buscando un modo para que cuando haga un cambio a una instancia de 'A' en 'subCollection1', también se modifique para 'myCollection'.
eso es lo que yo había supuesto. Sólo quería asegurarse de que el caso de la expresión no estaba haciendo algún tipo de copia superficial en mis instancias de la clase. – Brandon
a tener en cuenta que los tipos anónimos son siempre clases, así que también referencias. – Richard
@Richard: También vale la pena señalar que el ty anónimo pes son inmutables en C# por lo que no puede modificar una instancia de tipo anónimo de todos modos. – LukeH