LINQ 查询将值存储在 KeyValuePair<string, string> 列表中

以下 LINQ 查询获取所有站的所有参数,每个站 (x.station) 都有 X 个参数 (x.parameters),我需要所有这些参数用于“结果”和“值”。由于这一行,一开始可能有点混乱:


 from x in selection.Parameters

代表 x 个站,而不是 x 个参数。


LINQ 查询:


        var selectionData = 

            from x in selection.Parameters

            select new

            {

                Result = "(p.col_IdEstacion = " + x.Station + " and p.col_Sigla in(" +

                            ("'" + string.Join("','", x.Parameters) + "'") + "))",

                Values = 

                (

                    from y in x.Parameters

                    select new KeyValuePair<string, string>(

                        x.Station.ToString(), y)).ToList()

            };

我这样做的原因是因为我想稍后在 KeyValuePair 列表中存储存储在“值”中的所有站中的所有参数:


  List<KeyValuePair<string, string>>  myList

更新:发现代码正在运行,我做错的是将“值”添加到列表中,它可能是 FirstOrDefault() 只需要第一个:


      values.AddRange(selectionData.Select(d => d.Values).FirstOrDefault());

答案:发现存储使用 LINQ 检索到的所有值的正确方法是使用 SelectMany,如下所示:


valores.AddRange(selectionData.SelectMany(d => d.Values))


慕姐8265434
浏览 265回答 2
2回答

撒科打诨

答案:发现存储使用 LINQ 检索到的所有值的正确方法是使用&nbsp;SelectMany,如下所示:valores.AddRange(selectionData.SelectMany(d => d.Values))
打开App,查看更多内容
随时随地看视频慕课网APP