Я по-прежнему относительно новичок в LINQ, и сделал больше спотыкания, чем что-либо, но мне действительно понравилось то, что я видел до сих пор. Поэтому, имея в виду, у меня есть процедура поиска VB.NET, часть которой приведена ниже, которая проверяет все ячейки Text в DataGridView для данной строки (включительно), используя базовый набор вложенных циклов для выполнения поиска :Поиск ячейки DataGridView с использованием запроса LINQ
' Search for the first occurrence of the given string
For Each row As DataGridViewRow In dgvMembers.Rows
' Skip the new row
If row.IsNewRow Then Exit For
' Loop through all the cells in the current row
For Each cell As DataGridViewCell In row.Cells
' Skip non-text cells
If cell.GetType IsNot GetType(DataGridViewTextBoxCell) Then Continue For
' Search for our matching text
If cell.Value.ToString.ToUpper.Contains(searchText) Then
' Select the cell if we have a match
dgvMembers.CurrentCell = cell
WriteMessage("String '{0}' found.", searchText)
Exit Sub
End If
Next
Next
' If we get to this point, we didn't find anything
WriteMessage("String '{0}' NOT found.", searchText)
Pretty simple. Теперь, мой вопрос: есть ли способ воспроизвести это поведение с помощью LINQ? В основном я хотел бы, чтобы запрос выбирал (или возвращал) первый DataGridViewCell, текст которого содержит строку поиска. Я немного потрудился с подзапросами и тому подобным, но у меня все еще возникают проблемы с переносом моего мозга вокруг концепций (я думаю, слишком много лет написания T-SQL).
Очевидно, что вложенный цикл работает отлично, так что это скорее любопытство. Заранее спасибо!
Ничего себе, это так ... элегантный. :-) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * У меня еще не было возможности реализовать его, но это выглядит потрясающе. +1 для простоты! Я попробую и дам вам знать, как это работает. Благодаря! –
Это сработало очень хорошо. Просто нужно было добавить блок Try ... Catch для обработки, когда строка представляет собой новую строку (не может фильтровать ее в предложении Where, потому что мы ссылаемся на нее, как если бы она имела данные в предложении From) но кроме этого, это было прекрасно. Еще раз спасибо!!!! –
Мое удовольствие, рад, что это сработало для вас :) – knslyr