我当前正在使用以下代码,并且效果很好,从与字典中的关键字匹配的Word文档中获取段落时,唯一的问题是字典不允许重复,我想知道我可以像在where子句中使用字典一样使用List(of(keyvaluepair(of string,string))。
示例: 除某些字典外,它可以与字典完美地配合使用,密钥中的重复项与我需要放置的值相同。
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