2

我有以下要排序的内容:

IQueryable<Map> list;
list = from item in ctx.MAP
         .Include("C")
         .Include("L")
         .Include("L.DP")
       select item;
return list.OrderBy(m=>(m.L.DP.Name + m.L.Code));

这可行,但它按字母顺序排序 - 所以 12 在 9 之前。(假设代码是一个数字字段)

对此进行排序的最佳方法是什么,以便对代码进行数字排序?

4

2 回答 2

7

您可能希望使用 ThenBy 扩展方法能够按多个字段排序;)在您的情况下,这将是

 return list.OrderBy(m=>m.L.DP.Name).ThenBy(m => m.L.Code);
于 2010-01-29T19:12:58.190 回答
0
 var results = db.Blogs.AsEnumerable()
                    .Select(sr => new
                    {
                        Searchresult = sr,
                        Words = Regex.Split(sr.Name, @"[^\S\r\n {1,}").Union(Regex.Split(sr.Name2, @"[^\S\r\n]{1,}"))
                    })
                    .OrderByDescending(x => x.Words.Count(w => {
                        foreach (var item in searchTerms)
                        {
                            if(w.ToLower().Contains(item))
                            {
                                return true;
                            }
                        }
                           return false;
                    }))
                    .Select(x => x.Searchresult);
于 2012-09-20T22:36:46.623 回答