我有一个带有类别ID的产品列表,例如:
ID CategoryID Product Name
1 1 Product 1
2 1 Product 2
3 7 Product 3
4 8 Product 4
5 9 Product 5
6 10 Product 6
我想通过categoryID列表获取此列表和顺序,例如:1,8,9和其余的,所以我得到:
ID CategoryID Product Name
1 1 Product 1
2 1 Product 2
4 8 Product 4
5 9 Product 5
3 7 Product 3
6 10 Product 6
linq有什么办法吗?谢谢
5 回答
如果您的类别ID在列表中,您可以这样订购:
此查询仅适用于Linq to Objects,因此您需要从数据库中取消所有数据 .
假设1,8,9在列表中,我们将调用
orderList
,然后我们每次都可以继续查找列表中的位置,我们将更快地创建一个字典来快速查找它 .我们不需要首先设置
orderDict
,但它使逻辑比每次扫描列表更简单,也更快:O(n m)而不是O(nm) .如果您知道要在列表顶部排序的所有内容,请尝试以下操作:
产生这个(来自LinqPad):
你可以使用Enumerable.OrderBy:
编辑:这是一个演示:http://ideone.com/O462C
query
现在包含无序序列的产品列表 . 您可以通过它枚举如下:编辑:误解了答案 . 将更新答案 .