我从c#转换了该代码,但是它给出了错误 var is not define 你能给我一个建议做什么,我是vb.net的新手。我可以用什么而不是var
If searchCriteria = "Title" Then
Dim Searchresults As New List(Of SearchResultsTitle)()
Dim searchfields As String() = New String() {"title", ""}
Dim queryparser = New QueryParser(Lucene.Net.Util.Version.LUCENE_29, "title", analyzer)
Dim indexSearcher As New IndexSearcher(directory)
Dim hits = indexSearcher.Search(QueryMaker(searchString, searchfields))
Dim dt As New DataTable()
Dim SrNo As Integer = 1
For i As Integer = 0 To hits.Length() - 1
Dim result As New SearchResultsTitle()
result.SrNo = SrNo
result.Title = hits.Doc(i).GetField("title").StringValue()
result.Accessionno = hits.Doc(i).GetField("AccessionNo").StringValue()
result.Author = hits.Doc(i).GetField("Author").StringValue()
result.Location = hits.Doc(i).GetField("location").StringValue()
result.ClassNo = hits.Doc(i).GetField("ClassNo").StringValue()
result.Status = hits.Doc(i).GetField("status").StringValue()
Searchresults.Add(result)
SrNo = SrNo + 1
Next
Dim outputText As New StringBuilder()
Dim query = queryparser.Parse(txtSearch.Text)
Dim result = searcher.Search(query)
'now facets
Dim facetsText As New StringBuilder()
For Each result As<b> Var</b> In GetFacets(query, "title").Where(Function(k) k.Value > 0).OrderByDescending(Function(k) k.Value)
facetsText.AppendLine(item.Key + " ( " + item.Value + " )")
Next
Dim doc As New FlowDocument()
' Add paragraphs to the FlowDocument.
doc.Blocks.Add(New Paragraph(New Run(outputText.ToString())))
doc.Blocks.Add(New Paragraph(New Run("title")))
doc.Blocks.Add(New Paragraph(New Run(facetsText.ToString())))
rtbResult.Document = doc
dGridResults.ItemsSource = Searchresults
End If
答案 0 :(得分:2)
For Each定义为:
For Each o As Type In Collection
'do something with o
Next
Var
中的For Each
未被定义。 Var必须是现有的objecttype。尝试使用KeyValuePair(of,)(返回类型为GetFacets(..))或类似的东西。删除As Var
也是一种选择。