【发布时间】:2013-01-08 17:09:49
【问题描述】:
我需要帮助来构建 Linq 查询。我有这本词典:
var dict = new Dictionary<string, IDictionary<int, double>>
{
{ "one", new Dictionary<int, double>
{
{ 1, 2.0 },
{ 2, 3.0 }
}},
{ "two", new Dictionary<int, double>
{
{ 1, 3.0 },
{ 2, 4.0 },
{ 3, 5.0 }
}},
{ "three", new Dictionary<int, double>
{
{ 1, 4.0 },
{ 2, 5.0}
}}
};
我想选择所有关联值为 3.0 的“字符串”/“整数”元组。使用 Foreach 循环,它看起来像:
var res = new Dictionary<string, int>();
foreach (var elem in dict.Select (d => new { S = d.Key, I = d.Value }))
{
foreach (var val in elem.I)
{
if (val.Value == 3.0)
{
res.Add(elem.S, val.Key);
}
}
}
我正在尝试对单个 Linq 查询执行相同的操作,但没有成功(我不知道如何将键与子查询中的值“连接”)。你会怎么做呢?
提前谢谢你!
【问题讨论】:
-
结果数据应该是什么样的?例如
{ "one", new int[] { 2 } }或{ "one", 2 }
标签: c# linq c#-4.0 linq-to-objects