2017-04-18 51 views
0

我有两个List,promolistpackagelistpackagelist数据必须是第一个,然后packagelist,既list必须OrderByDescendingThenByDescendinglevel然后totalclickOrderByDescending在AddRange之前Linq查询

贝娄是我试过

promolist.OrderByDescending(o => o.packagelevel.level).ThenByDescending(o => o.totalclick); 
promolist.AddRange(packagelist.OrderByDescending(o => o.packagelevel.level).ThenByDescending(o => o.totalclick)); 
return promolist; 

结果是我想几乎什么,promolist是以前packagelist,并packagelist有正确的订单,只是promolist没有做任何OrderByDescendingThenByDescending

+0

LINQ的不操纵名单。 Linq正在创建一个新的列表。 – Mafii

回答

2

OrderBy的结果是您需要分配和评估的新枚举。你不会对结果做任何事情。

你需要这样的:

promolist = promolist.OrderByDescending(o => o.packagelevel.level) 
        .ThenByDescending(o => o.totalclick) 
        .ToList(); 
+1

您好,感谢您的回复,您的意思是应该在'AddRange'之前添加'promolist ='吗? –

+0

不,'promolist.AddRange'将枚举的结果添加到'promoList'中。这样可行。 'promolist.OrderByDescending'不起作用。 –

+0

对不起,我不明白,那么最终的代码是什么样的? –