为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕姐8265434 2021-08-07 15:46:54
以下 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))
查看完整描述

2 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

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

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


查看完整回答
反对 回复 2021-08-07
  • 2 回答
  • 0 关注
  • 264 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信