visual una texto seleccionar posicionarse por obtener numero filtrar filas fila datos codigo celda buscar boton c# winforms linq datagridview

c# - texto - ¿Cómo puedo usar LINQ para encontrar una fila DataGridView?



seleccionar fila datagridview c# por codigo (2)

Necesita convertir a IEnumerable<DataGridViewRow> ya que DataGridViewRowCollection solo implementa IEnumerable :

MyDatagrid.Rows .Cast<DataGridViewRow>() .FirstOrDefault(r => r.DataBoundItem == myItem).Selected = true;

¿Hay alguna forma de utilizar una consulta de estilo LINQ para encontrar una fila DataGridView? Intento encontrar el que está vinculado a un objeto específico y resaltarlo.

MyDatagrid.Rows.FirstOrDefault(r => r.DataBoundItem == myItem).Selected = true;

El error 1 ''System.Windows.Forms.DataGridViewRowCollection'' no contiene una definición para ''FirstOrDefault'' y no se pudo encontrar ningún método de extensión ''FirstOrDefault'' que aceptara un primer argumento de tipo ''System.Windows.Forms.DataGridViewRowCollection'' (¿falta un ¿usando una directiva o una referencia de ensamblado?)


Para aquellos que vinieron aquí buscando la versión VB, la respuesta de Lee se traduce en:

MyDatagrid.Rows.Cast(Of DataGridViewRow)().FirstOrDefault(Function(r) r.DataBoundItem Is myItem).Selected = True

Además, si usted es como yo, y está utilizando esto para encontrar su DataGridViewRow de su DataTable.DataRow encuadernado ( DataGridView.DataSource = DataTable ), entonces puede acceder de esta manera:

Dim MyDataRowSearch() As DataRow = MyDataTable.Select("SomeColumn = SomeValue") If MyDataRowSearch.Count = 1 Then MyDataGrid.Rows.Cast(Of DataGridViewRow)().FirstOrDefault(Function(r) DirectCast(r.DataBoundItem, DataRowView).Row Is MyDataRowSearch(0)).Selected = True End If

Esto es mucho más eficiente que recorrer su DataGridView buscando valores coincidentes.