将我的代码从C#转换为VB.NET,现在它抛出了var的错误

时间:2016-01-21 11:00:07

标签: wpf vb.net lucene.net

我从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

1 个答案:

答案 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也是一种选择。