在List <ilist <object>&gt;中查找IList <object>特定对象使用linq c#

时间:2018-01-05 07:03:19

标签: c# asp.net-mvc linq asp.net-mvc-5

C#代码

var brightEdgeKeywordGroupRequest = new BrightEdgeRequest{
                    Dataset = "keywordgroup",
                    DimensionOptions = new BrightEdgeDimensionOptions
                    {
                        Time = brightEdgeOption.Equals(BrightEdgeOperations.KeywordGroupsWeekly) ? "weekly" : "monthly"
                    },
                    Filters = new List<IList<object>>
                    {
                        new List<object> {"time", "eq", request.StartTime.Year + (brightEdgeOption.Equals(BrightEdgeOperations.KeywordGroupsWeekly) ? GetWeekOfYear(request.StartTime): request.StartTime.Month.ToString("00")) },
                        new List<object> {"keywordgroup:id", "ne", "-1"},
                        new List<object> { "search_engine", new int[,] { { 1, 34 }, { 1, 36 }, { 2, 34 }, { 2, 36 }, { 3, 34 }, { 3, 36 } } }
                    }
                };

只想从brightEdgeKeywordGroupRequest.Filters获取 search_engine ,但不能获得准确的方法。如果有人有任何解决方案,请与我们分享。

1 个答案:

答案 0 :(得分:0)

一种可能的方式......

 var searchEngine = brightEdgeKeywordGroupRequest?
                    .Filters?
                    .FirstOrDefault(f => f.FirstOrDefault() is string && string.Equals((string)f.FirstOrDefault(), "search_engine", StringComparison.OrdinalIgnoreCase))?
                    .ToArray()[1];

这将返回search_engine数组部分,这是我所理解的目标。

new int[,] { { 1, 34 }, { 1, 36 }, { 2, 34 }, { 2, 36 }, { 3, 34 }, { 3, 36 } }