Я все еще относительно новичок в LINQ и сделал больше спотыкания, чем что-либо еще, но мне действительно понравилось то, что я видел до сих пор.Имея это в виду, у меня есть подпрограмма поиска VB.NET, часть которой представлена ниже, которая проверяет все текстовые ячейки в DataGridView на наличие заданной строки (включительно), используя базовый набор вложенных циклов для выполнения поиска.:
' 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)
Довольно просто.Теперь мой вопрос: есть ли способ воспроизвести это поведение с помощью LINQ?По сути, я хотел бы, чтобы запрос выбрал (или возвратил) первый DataGridViewCell, текст которого содержит строку поиска.Я немного поработал с подзапросами и тому подобным, но мне все еще не удается обернуть мой мозг вокруг этих концепций (я думаю, слишком много лет написания T-SQL).
Очевидно, что вложенный цикл работает нормально, так что на самом деле это скорее любопытство.Заранее спасибо!