62,025
社区成员
发帖
与我相关
我的任务
分享
var lst = new List<string> { "A01", "A02", "A22", "B02", "A23-1", "A23", "A222", "A101", "A10-1", "A11" };
var query = from t in lst
let p= t.Split('-')
let a =p[0][0]
let b = int.Parse( p[0].Substring(1))
let c = p.Length < 2 ? 0 : int.Parse(p[1])
orderby c
orderby b
orderby a
select t;
List<string> lst = new string[] { "A01", "A02", "A22", "B02", "A23-1", "A23", "A222", "A101", "A10-1", "A11" }.ToList<string>();
var query = from t in lst
orderby t.Substring(0, 1) + t.Substring(1).Substring(0, t.Contains('-') ? t.IndexOf('-') - 1 : t.Length - 1).PadLeft(5) + (t.Contains('-') ?"-":"")
select t;
List<string> s = query.ToList<string>();