读书人

【100分有关问题】Linq 查询排序

发布时间: 2012-01-23 21:57:28 作者: rapoo

【100分问题】Linq 查询排序 .

classA 的结构如下
{
int Index;
string Number;
}

有个类的集合 Dictionary<int, ClassA>

{
0 , new ClassA(1 , + ) ,
1 , new ClassA(2 , 3 ) ,
2 , new ClassA(3 , - ) ,
3 , new ClassA(4 , 1 ) ,
4 , new ClassA(5 , - ) ,
5 , new ClassA(6 , + ) ,
6 , new ClassA(7 , 2 ) ,
7 , new ClassA(8 , 3 ) ,
8 , new ClassA(9 , 1 ) ,
9 , new ClassA(10 , - ) ,
}

+ 的位置永远不动
- 放在同组一起按照index排序
其他的按照number排序

如何通过一句linq语句达到这个目的呢?

例如上面升序结果

0 , new ClassA(1 , + ) ,
3 , new ClassA(4 , 1 ) ,
1 , new ClassA(2 , 3 ) ,
2 , new ClassA(3 , - ) ,
4 , new ClassA(5 , - ) ,
5 , new ClassA(6 , + ) ,
8 , new ClassA(9 , 1 ) ,
6 , new ClassA(7 , 2 ) ,
7 , new ClassA(8 , 3 ) ,
9 , new ClassA(10 , - ) ,
降序结果
0 , new ClassA(1 , + ) ,
1 , new ClassA(2 , 3 ) ,
3 , new ClassA(4 , 1 ) ,
2 , new ClassA(3 , - ) ,
4 , new ClassA(5 , - ) ,
5 , new ClassA(6 , + ) ,
7 , new ClassA(8 , 3 ) ,
6 , new ClassA(7 , 2 ) ,
8 , new ClassA(9 , 1 ) ,
9 , new ClassA(10 , - ) ,

[解决办法]
没看明白楼主意思
2 , new ClassA(3 , - ) ,
4 , new ClassA(5 , - ) ,
升序和降序这俩都一样啊
[解决办法]

探讨
2 , new ClassA(3 , - ) ,
4 , new ClassA(5 , - ) ,

这两个不一样的
试下就知道了
另外我现在已经实现了
不过效率可能不好
所以想看看有没有效率更高的算法

谢谢

读书人网 >.NET

热点推荐