我收集的物品,他們每個人都有int TypeId
屬性。我需要對這個集合中的物品重新排序(或者獲得新的物品),其中物品首先被訂購,所有物品首先是TypeId = 3
,然後是TypeId = 1
,然後是TypeId = 2
。
我的解決辦法是:收集自定義重新排序
var result = new List<A>();
result.AddRange(source.Where(i => i.TypeId == 3));
result.AddRange(source.Where(i => i.TypeId == 1));
result.AddRange(source.Where(i => i.TypeId == 2));
我想知道,任何有沒有多個迭代另一個快速的解決方案在source
集合(可能是一些LINQ招)?
什麼類型的收藏是你的名單?一些集合類具有內置的排序功能,可以非常快速。通常QuickSort是首選的方法,儘管(取決於Where函數的快速程度),但此方法看起來非常有效。 –
@Nick Udell:這是一個按字段排序的技巧,排序時應使用與自然排序不同的技巧。所以我相信這不是標準排序算法的任務 – sll