Учитывая DataView, который содержит несколько строк, я хочу извлечь строку на основе следующих критериев:
- Если строка начинается с определенной строки и заканчивается определенной строкой, выберите эту строку выше всех других
- Если ни одна строка не соответствует первому критерию, просто найдите строку, которая начинается с определенной строки
- Если мы не можем сопоставить ничего из вышеперечисленного, по умолчанию используется значение null.
Моя быстрая попытка просто возвращает первую строку, которая соответствует каким-либо критериям (извините, если синтаксис VB не верен, я не настолько знаком с ним);
Dim result = (From row In dv.Table.Rows() _
Where (GetString(row, "id").StartsWith(Me.ID.Substring(0, 3), StringComparison.OrdinalIgnoreCase) AndAlso _
GetString(row, "id").EndsWith(Me.ID.Substring(Me.RegisteredID.Length - 2, 2), StringComparison.OrdinalIgnoreCase)) OrElse _
GetString(row, "id").StartsWith(Me.ID.Substring(0, 3), StringComparison.OrdinalIgnoreCase) _
Select row).FirstOrDefault()
Редактировать: Я хотел добавить, что что-то вроде https://stackoverflow.com/a/443055/685760 выглядит многообещающе, но я не думаю, что это сработает в моей ситуации. Не стесняйтесь поправлять меня, если я ошибаюсь.