2017-04-18 28 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

對不起,我不明白,那麼最終的代碼是什麼樣的? –