以下 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))
撒科打诨
相关分类