c# - filtrar - Obtener elementos filtrados de un CollectionView
filtrar datagridview c# (1)
Tengo un ListCollectionView
que se le ha aplicado un filtro. Para obtener los elementos filtrados de la lista (por ejemplo, para escribir en un archivo), hay una forma clara de hacerlo.
Mi solución actual es
var filteredItems = originalCollection.Where(i => view.Filter(i));
En el código view.Filter
si hay nulos en originalCollection
y view.Filter
.
¿Hay una forma más limpia de hacer esto?
El método GetEnumerator
tiene en cuenta el filtro, por lo que solo puede foreach
en la vista:
ICollectionView view = ...
view.Filter = ...
foreach(Foo o in view)
{
...
}
(Suponiendo que los objetos en la colección original son de tipo Foo
).
También puedes usar el método de extensión Cast
:
var filteredItems = view.Cast<Foo>();