Jan*_*sen 1 c# linq sorting lambda
我试图与Linq做一个特殊的订单.它必须按S然后按P然后NB然后V然后NC.我不确定它是否是最好的方法,但这就是我所拥有的:
repeater.DataSource = query.OrderBy(p => p.Title ?).ThenBy(?).ThenBy(?);
Run Code Online (Sandbox Code Playgroud)
如果您在字段中只有那些不同的值,那么您可以使用字典将字符串转换为合适的数字,如下所示:
var order = new Dictionary<string, int>();
order.Add("S", 0);
order.Add("P", 1);
order.Add("NB", 2);
order.Add("V", 3);
order.Add("Nc", 4);
repeater.DataSource = query.OrderBy(p => order[p.Title]);
Run Code Online (Sandbox Code Playgroud)
如果源是LINQ to SQL,则必须首先将其实现到列表中,以便使用LINQ to Objects进行排序:
repeater.DataSource = query.ToList().OrderBy(p => order[p.Title]);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1655 次 |
最近记录: |