c# - 在 Asp.net c# 中使用 linq 对 list<object> 进行升序和降序排序

标签 c# .net list generic-list

大家好,我正在从 web api 获取响应并将其存储在 var“obj1”中。然后将它添加到对象类型的列表“snap”中......我必须对“snap”执行操作以便列表应该根据一个参数(如“distance”)按升序排列......请帮助我

这是我的代码..

List<object> snap = new List<object>();
var obj1 = objEntity.TB_Broadcast_Snap.Where(s => s.snapid == sid)
                                      .Join(objEntity.TB_User_Registration,
                                            u => u.userid,
                                            v => v.userid,
                                            (u, v) => new { TB_Broadcast_Snap = u, TB_User_Registration = v })
                                      .Select(s => new
                                      {
                                          s.TB_Broadcast_Snap.snapid,
                                          s.TB_Broadcast_Snap.title,
                                          s.TB_Broadcast_Snap.details,
                                          s.TB_Broadcast_Snap.category,
                                          s.TB_Broadcast_Snap.tag,

                                          s.TB_Broadcast_Snap.broadcastdistance,
                                          s.TB_Broadcast_Snap.images,
                                          s.TB_Broadcast_Snap.latitude,
                                          s.TB_Broadcast_Snap.longitude,
                                          s.TB_Broadcast_Snap.image_detail1,
                                          s.TB_Broadcast_Snap.image_detail2,
                                          s.TB_Broadcast_Snap.image_detail3,
                                          s.TB_Broadcast_Snap.barcode_image,
                                          s.TB_Broadcast_Snap.broadcast_date,
                                          s.TB_Broadcast_Snap.promocode,
                                          snaptitle = s.TB_Broadcast_Snap.title,
                                          s.TB_Broadcast_Snap.broadcasttype,
                                          s.TB_Broadcast_Snap.regionname,
                                          distance = 0,
                                          popcountno = popcount,
                                          issnaped = issnapped,
                                          //Vendor Detail
                                          s.TB_User_Registration.emailid,
                                          address1 = "No address",

                                          s.TB_User_Registration.userid,
                                          s.TB_User_Registration.username,
                                          s.TB_User_Registration.imageurl,
                                          s.TB_User_Registration.business_name,
                                          s.TB_User_Registration.vendortype,
                                          vendorname = s.TB_User_Registration.name,
                                      }).ToList();
snap.AddRange(obj1);

最佳答案

这是如何先按 Distance 排序,然后按另一个字段降序:

var obj1 = objEntity.TB_Broadcast_Snap.Where(s => s.snapid == sid)
                                       .Join(/*code*/)
                                       .Select(/*code*/)
                                       .OrderBy(item => item.Distance)
                                       .ThenByDescending(item => item.OtherField)
                                       .ToList();

关于c# - 在 Asp.net c# 中使用 linq 对 list<object> 进行升序和降序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38892627/

相关文章:

python 3.x : How to extract even numbers from a user input list?

.net - 使用 LINQ 从列表创建元组列表

c# - 如何将 CSV 文件批量插入 SQLite C#

c# - 无法从 X509Store 读取 CurrentUser 证书

.net - 适用于 .NET WCF、.NET CF、Android、Symbian 的跨平台 AES 加密

c# - 有没有办法计算执行的 IL 指令数?

c# - 验证摘要应显示在警告消息框中?

c# - 在ASP.Net核心中应用粒度权限限制

c# - 在 C# 中,为什么我不能传递另一个类的 EventHandler 引用,我该如何绕过它?

algorithm - 找到元素的最佳排序