日期:2014-05-20  浏览次数:20963 次

[猫哥这里有鱼]linq 字母数字组合字符串排序。
C# code

var subarea = (from a in db.Graves
where a.FgrId == areaid
orderby a.subArea ascending
select new
{
a.subArea
}).Distinct().ToList();


subArea 是字母带数字组合 如A1
我希望以如下顺序排列:
A1,A2,A3,A4 请问 orderby处该如何处理
[code=c#]
orderby Convert.ToInt32(a.subArea.Substring(1)) ascending 这么排序在sql里是可以的 但是linq里貌似行不通
[/code]

最后40分了

------解决方案--------------------
据我所知 这样写法是可以的
 不过最好对 subArea 加个非空判断:

var subarea = (from a in db.Graves
where a.FgrId == areaid && a.subArea.Length>1
orderby Convert.ToInt32(a.subArea.Substring(1))
select new
{
a.subArea
}).Distinct().ToList();