编译错误: “当前上下文中不存在名称'b'”
代码:
List<PositionValues> list = new List<PositionValues>();
PositionValues item1 = new PositionValues();
item1.Position = 2;
item1.Value = 44;
list.Add(item1);
PositionValues item2 = new PositionValues();
item2.Position = 1;
item2.Value = 33;
list.Add(item2);
PositionValues item3 = new PositionValues();
item3.Position = 1;
item3.Value = 22;
list.Add(item3);
var resultList = from b in list
group b by b.Position into g
orderby b.Value select b;
上面的代码依赖于这个结构:
public struct PositionValues
{
/// <summary>
/// The position.
/// </summary>
public int Position;
/// <summary>
/// The position.
/// </summary>
public double Value;
}
我希望得到以下排序顺序:
resultList[0] {1, 22}
resultList[1] {1, 33}
resultList[2] {2, 44}
“位置”在括号中排在第一位,“值”在第二位。
答案 0 :(得分:3)
根据您发布的预期结果,您无需使用group by
。
你想要的更像是这样:
var result = list.OrderBy(x => x.Position).ThenBy(x => x.Value);
答案 1 :(得分:1)
或者,如果您想要查询样式,
var query =
from b in list
orderby b.Position, b.Value
select b;
答案 2 :(得分:0)
您已将b
用于群组g
,因此现在使用g
。在分组到g。
var resultList = from b in list orderby b.Value group b by b.Position into g select g;