我有對象的集合。我需要用困難的條件對它進行排序,使用許多屬性和計算。我的解決方案是定義對象特殊的int
屬性,返回值,即OrderBy
肩負。這個解決方案不夠好。
對於例如,收集應首先由State
屬性排序,那麼如果State = 1
,通過Value1
屬性,如果State = 2
,通過Value2
物業等。
建議,請解決一些問題。集合的自定義排序
Q
集合的自定義排序
0
A
回答
2
您可以通過使用OrderBy第一個嚴格的標準和使用ThenBy後鏈接的其他標準命令由多個條件的集合。
你的第一個準則是簡單地按照國有財產命令。你的第二個標準取決於國家財產;假設值1,值等有相同的類型,你可以使用一個switch
語句來選擇合適的值:
IEnumerable<MyClass> result = items
.OrderBy(item => item.State)
.ThenBy(item =>
{
switch (item.State)
{
case 1: return item.Value1;
case 2: return item.Value2;
}
throw new Exception();
});
1
實現IComparer和使用LINQ
的排序依據
0
您可以使用IComparer類;
只需將上面給出的所有邏輯放入其比較方法即可。
相關問題
- 1. 自定義排序的Magento集合?
- 2. 自定義排序主幹集合
- 3. Java集合排序VS自定義排序 - 速度
- 4. Backbone.js自定義收集排序
- 5. 自定義排序+集團通過
- 6. 自定義按類別排序集合類
- 7. C#自定義組合框排序
- 8. 異常序列化自定義集合
- 9. 自定義對象集合序列化
- 10. ngTable - 定義自定義排序次序
- 11. 定義自定義排序順序
- 12. RABL - 自定義集合
- 13. 上自定義集合
- 14. AutoMapper自定義集合
- 15. parallel.foreach與自定義集合
- 16. MySQL的自定義排序
- 17. datagridview的自定義排序
- 18. 排序的集合
- 19. 自定義排序與插入排序
- 20. MPI_Group中排名的自定義排序
- 21. Cloudant自定義排序
- 22. Xcode:NSSortDescriptor自定義排序
- 23. 自定義數組排序
- 24. TCL自定義排序
- 25. 自定義日期排序
- 26. DataGridView自定義排序WinForm
- 27. AngularJS自定義排序
- 28. 自定義Solr排序
- 29. 爲SubDataFrame自定義排序
- 30. Magento自定義排序
@Baszz,感謝您的建議,但哪裏有可能誤解?我提供了一個小例子,我必須處理,並且已經有3個令人滿意的答案。 –
好的,我刪除它並再次提高。 –