2015-12-04 36 views
0
return new List<string> { newItem }.Union(currentList.Take(9)); 

如何讓newItem保持在頂端?這似乎很簡單,但我有一個腦凍結。LINQ聯盟 - 字符串保持秩序

它自然地命令字符串,這意味着我的newItem可以出現在列表中的任何地方。我只是說它已經在那裏了。

回答

3

嘗試使用Concat,而不是Union,前者應該保持,而後者的順序是一套方法,刪除重複,並且不保證任何順序:

return new List<string> { newItem }.Concat(currentList.Take(9)); 

這適用於Linq-To-Objects爲表示here

當用這種方法所返回的對象被列舉聯盟 列舉第一和第二的順序,併產生每個元素 公頃還沒有被取消。

但它也適用於數據庫驅動的LINQ提供者Linq-To-SqlLinq-To-Entities因爲UNION ALLUNION表現相似(前者保持秩序,後者則不是)。

+0

謝謝Tim,按計劃工作 –