如何使用LINQ从多级变量获取值

时间:2019-02-02 09:45:32

标签: c# asp.net linq

我想无法使用LINQ来获取值。我正在使用下面的代码来获取数据。

  SearchParameters sp3 = new SearchParameters()
        {
            Filter = "name eq 'test'",
            Top = 5,
            QueryType = QueryType.Full,
            Select= new List<string>() { "Query" },
        };

         if (highlights)
        {
            sp3.HighlightPreTag = "<b>";
            sp3.HighlightPostTag = "</b>";
        }
        DocumentSearchResult suggestResult = _indexClient1.Documents.Search(term,sp3);

            List<string> suggestions = (from p in suggestResult
                                   .Results.Select(s => s.Document)
                                   .Select(y => y.Values.ToString())
                                    select p).ToList();

层次结构是文档->结果->查询。

我正在获取直到结果级别的值,但是我想获取直到查询级别的数据。 我不是LINQ专家。

屏幕截图

enter image description here

输出

enter image description here

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找的是这样的东西:

suggestResult.Results.SelectMany(s => s.Document.Select(d => d.Query)).ToList()

它应该为您提供所有文档结果中所有查询对象的列表。

如果要以字符串形式查询,则必须在内部Select中获取Query的另一个属性,或对其调用ToString()。