在我的应用程序中,我有一个项目列表,我需要按价格排序,并为每个项目设置排名/位置索引.我需要存储排名,因为之后价格可能会发生变化.目前我这样做:
var sortedlistKFZ = from res in listKFZ orderby res.Price select res;
if (sortedlistKFZ.Any())
{
int rankPosition = 1;
foreach (Result kfz in sortedlistKFZ)
{
kfz.MesaAdvertNumber = rankPosition;
rankPosition++;
}
}
Run Code Online (Sandbox Code Playgroud)
有更短的方法吗?
这项工作可能吗?
int rankPosition = 1;
var sortedListKFZ = listKFZ.OrderBy(r => r.Price).Select(r => {
r.MesaAdvertNumber = ++rankPosition;
return r;
});
Run Code Online (Sandbox Code Playgroud)