Looking at the problem from another angle, we have loaded the data into a DataTable. We can create a virtual column that uses the first eight chrs of the column to search for a match.
Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dt As New DataTable
dt.Columns.Add(New DataColumn("Col1", GetType(System.String)))
dt.Columns.Add(New DataColumn("Col2", GetType(System.String)))
dt.Columns.Add(New DataColumn("Col3", GetType(System.String)))
dt.Columns("Col3").Expression = "SUBSTRING(Col1,1,8)"
dt.Rows.Add(New Object() {"12345678901", "A"})
dt.Rows.Add(New Object() {"12345678", "B"})
dt.Rows.Add(New Object() {"12345677", "C"})
dt.Rows.Add(New Object() {"12345678", "D"})
dt.Rows.Add(New Object() {"12345677", "E"})
DataGridView1.DataSource = dt
DataGridView1.Columns("Col3").Visible = False
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim dt As DataTable = CType(DataGridView1.DataSource, DataTable)
Dim Items = dt.Select("Col3 ='12345678'")
For Each row As DataRow In Items
Console.WriteLine(String.Join(",", row.ItemArray.Select(Function(s) s.ToString).ToArray))
Next
End Sub