Arhn - архитектура программирования

Разделить поле в запросе Linq

Ниже приведено содержимое имени поля OULocationPath. Мне нужно разобрать OU=location, но только местоположение. Не ОУ=.

CN=мое имя, OU=отдел, OU=местоположение, OU=общая область, DC=компания, DC=org

Ниже приведен запрос, который я использую для заполнения сетки. Я еще не добавил поле выше.

  Public Function GetLocationList() As List(Of Contact)
    GetLocationList = mContacts.FindAll(Function(x) x.Company.Contains("CompanyName") = True And x.WorkEmail = Nothing And x.WorkPhone <> "")
End Function

Спасибо!


  • Помогают ли ответы на Извлечь общее имя из отличительного имени? 23.07.2021
  • Или, может быть, вам нужно только что-то вроде Dim ous = OULocationPath.Split({","c}).Where(Function(p) p.StartsWith("OU=")).Select(Function(q) q.Substring(q.IndexOf("=") + 1)), хотя это не справится с экранированными запятыми. 23.07.2021
  • Не используйте = True. Что означает анализ местоположения в контексте возврата List(Of Contact)? Какое это имеет отношение к показанному методу? 23.07.2021
  • В дополнение к части комментария NetMage относительно отсутствия необходимости в = True, для логики лучше использовать AndAlso вместо And, а для сравнения с Nothing использовать оператор Is, например: GetLocationList = mContacts.FindAll(Function(x) x.Company.Contains("CompanyName") AndAlso x.WorkEmail Is Nothing AndAlso x.WorkPhone <> "") - но, глядя на части этого, интересно, должно быть IsNot Nothing. 24.07.2021
  • Эндрю Мортон и NetMage, спасибо за быстрые ответы. Позвольте мне проверить ваши предложения, и я дам вам знать, как я делаю. Я, вероятно, не смогу попробовать до вторника, 27-го. Я не могу дождаться, чтобы вернуться к этому! 25.07.2021

Ответы:


1

@Andrew Morton и @NetMage, я смог заставить синтаксический анализ работать, используя код ниже:

 Public Function GetLocationList() As List(Of Contact)
    GetLocationList = Nothing
    Dim Answerset = mContacts.FindAll(Function(x) x.Company.Contains("CompanyName") = True AndAlso x.WorkEmail = Nothing AndAlso x.WorkPhone IsNot Nothing)
    Dim _GridLocations As New List(Of Contact)
    Dim _GridLocation As Contact
    _GridLocations.Clear()

    For Each l In Answerset
        _GridLocation = New Contact
        With _GridLocation
            .FullName = l.FullName
            .WorkPhone = l.WorkPhone
            .Extension = l.Extension

            Dim s As String = l.OULocationPath
            Dim sp As String() = s.Split(New [Char]() {","c, "="c})
            Dim first6 As String() = sp.ToList().GetRange(0, 6).ToArray()
            .OULocationPath= first6(5)
        End With
        _GridLocations.Add(_GridLocation)
    Next
    GetLocationList = _GridLocations
End Function
26.07.2021
  • Все еще имеет = True. Результатом Contains() является уже логическое значение. Кроме того, .Clear() не нужен в списке, который был только что создан строкой ранее. 26.07.2021
  • @Joel Coehoorn, спасибо за информацию. Я обновлю его в своей программе. 27.07.2021
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..