代码之家  ›  专栏  ›  技术社区  ›  chris

LINQ到Entite/IQueryable:在多个字段上排序

  •  2
  • chris  · 技术社区  · 15 年前

    我想对以下内容进行分类:

    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));
    

    对代码进行数字排序的最佳方式是什么?

    2 回复  |  直到 13 年前
        1
  •  7
  •   Tomas Vana    15 年前

    您可能希望使用ThenBy扩展方法,以便能够按多个字段排序;)

     return list.OrderBy(m=>m.L.DP.Name).ThenBy(m => m.L.Code);
    
        2
  •  0
  •   Tiago Roque Curião    13 年前
     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);