with usar recorrer copytodatatable consulta con c# linq datagridview

c# - usar - Usando el objeto DataGridViewRowCollection en LINQ



recorrer datatable c# linq (1)

Sí, haz esto:

var rows = yourDataGridViewRowCollection .Cast<DataGridViewRow>() .Where(row => row.index > 4);

Esto utiliza el método de extensión Enumerable.Cast :

El método Cast<TResult>(IEnumerable) permite invocar a los operadores de consulta estándar en colecciones no genéricas proporcionando la información de tipo necesaria. Por ejemplo, ArrayList no implementa IEnumerable<T> , pero al llamar a Cast<TResult>(IEnumerable) en el objeto ArrayList , los operadores de consulta estándar pueden utilizarse para consultar la secuencia.

Me gustaría usar un DataGridViewRowCollection en una expresión LINQ usando métodos de extensión y expresiones lambda. Desafortunadamente, los métodos de extensión son para los tipos IEnumerable<T> , que DataGridViewRowCollection no implementa. Lo gracioso es que puedo usar LINQ aquí con la sintaxis similar a SQL:

IEnumerable<DataGridViewRow> lRows = from DataGridViewRow row in dgvGrid.Rows select row;

Después de hacer eso, puedo usar los métodos de extensión LINQ:

foreach (DataGridViewRow lRow in lRows.Where(row => row.index > 4)) { ... }

¿Hay alguna forma en que pueda convertir mi DataGridViewRowCollection a un IEnumerable<> sin usar esa primera declaración larga? Lo mismo se aplica a DataGridViewCellCollection y DataGridViewColumnCollection .

PD. Estoy usando .net framework 3.5