2016-08-11 2 views
2

Здравствуйте, ребята, я получаю resopnse из web api и сохраняю его на var obj1. затем добавив его в список «привязки» к типу объекта ... Мне нужно выполнить операцию «привязать», чтобы список приходил в порядке возрастания по одному параметру, например «расстояние» .... пожалуйста, помогите мнеСортировка списка <object> в порядке возрастания и убывания с использованием linq в Asp.net C#

вот мой код ..

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

ответ

2

Это как заказать сначала 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(); 
+0

есть имя столбца, как расстояние, которое я создал динамически это не упомянуть как свойство, это динамично, и я должен сортировать этот результат по возрастанию в соответствии с этим –

+0

@amitsingh - Ya это прекрасно - это поле в объектах, возвращаемых из 'select' –

+0

, что в вашей ответной подсказке есть список или переменная? или вы можете дать мне правильный код ... это будет отличная помощь. Спасибо, брат. –

Смежные вопросы