Как я могу использовать Dictionary.Any (Function (x)) со списком (из (keyvaluepair (of String, String)) VB.NET - PullRequest
0 голосов
/ 21 ноября 2018

В настоящее время я использую следующий код, и он работает очень хорошо, при получении абзацев из документа Word, который соответствует ключевым словам в моем словаре, единственная проблема заключается в том, что словари не допускают дублирования, я хочу знать, какМогу ли я использовать List (of (keyvaluepair (of string, string)) так же, как я использую словарь в предложении where.

Примеры: Прекрасно работает со словарем, кроме некоторых, в ключе есть дубликаты сто же значение, которое мне нужно разместить.

    filelistDict.Add("date", "Date")
    filelistDict.Add("july", "Date")
    filelistDict.Add("1", "Date")
    filelistDict.Add("1", "Number")
    filelistDict.Add("one", "Number")


        Dim matchQuery4 = From para As Paragraph In doc.Paragraphs
                          Where filelistDict.Any(Function(s) Regex.IsMatch(para.Range.Text, "(_|-)" + Regex.Escape(s.Key) + "|\b" + Regex.Escape(s.Key) + "\b|" + Regex.Escape(s.Key) + "(_|-)", RegexOptions.IgnoreCase))
                          Select para

Я хочу добиться того же результата, но со следующим списком, который допускает дубликаты, но я не знаю, как реализовать в коде linq.

 Dim WordsDictionary As List(Of KeyValuePair(Of String, String))

 Dim matchQuery4 = From para As Paragraph In doc.Paragraphs
                          Where WordsDictionary.Any(Function(s) Regex.IsMatch(para.Range.Text, "(_|-)" + Regex.Escape(s.Key) + "|\b" + Regex.Escape(s.Key) + "\b|" + Regex.Escape(s.Key) + "(_|-)", RegexOptions.IgnoreCase))
                          Select para
...