我有一个带有列值的Windows Datagridview
id
---
0
0
0
5
2
7
我想要提升这种类型但是零容器将会被淘汰。 像这样 -
2
5
7
0
0
0
答案 0 :(得分:0)
由于您没有提到DataGridView
的数据源,因此我展示了一个集合的方法。例如,使用int[]
,但它适用于所有:
int[] collection = { 0, 0, 0, 5, 2, 7 };
int[] ordered = collection.OrderBy(i => i == 0).ThenBy(i => i).ToArray();
这是有效的,因为第一个OrderBy
使用的比较可以是true
或false
。由于true
比false
“更高”,所以非{0}首先出现。 ThenBy
用于非零组的内部排序。
如果这太抽象,也许你会发现它更具可读性:
int[] ordered = collection.OrderBy(i => i != 0 ? 0 : 1).ThenBy(i => i).ToArray();
答案 1 :(得分:0)
如果您没有为网格使用数据源,那么您可以使用此类DataGridView.SortCompare事件
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_HOVER_ENTER:
//Your Code
break;
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_HOVER_MOVE:
//Your Code
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_HOVER_EXIT:
//Your Code
break;
}
return true;
}
不要忘记将事件处理程序附加到网格视图。