list的sort()方法,只能實現簡單資料的排序,如過list裡面裝的是物件,就必須要顯示實現icomparer介面,才能排序,並且有時我們需要對乙個物件進行多列排序,如學生按學號,成績公升序排列。在實現這個介面的時候,我們可以對多個字段排序,**如下:
publicclass
people
public
int age
public
string name
}public
class peoplecomparer : icomparer
#region icomparerpublic
intcompare(people x, people y)
int *** = -1
; *** = comparer.default.compare(x.***, y.***);
if (*** == 0
)
if (*** == 0
)
return
***;
}#endregion
}
private
void button1_click(object
sender, eventargs e)
);lstpeople.add(
new people );
lstpeople.add(
new people );
lstpeople.add(
new people );
lstpeople.add(
new people );
lstpeople.add(
new people );
lstpeople.add(
new people );
lstpeople.add(
new people );
lstpeople.add(
new people );
lstpeople.add(
new people );
system.diagnostics.debug.writeline(
"原始資料:");
disppeople(lstpeople);
system.diagnostics.debug.writeline(
"公升序排列:");
peoplecomparer asccompare = new peoplecomparer(true
); lstpeople.sort(asccompare);
disppeople(lstpeople);
system.diagnostics.debug.writeline(
"降序排列:");
peoplecomparer desccompare = new peoplecomparer(false
); lstpeople.sort(desccompare);
disppeople(lstpeople);
}private
void disppeople(ienumerablepeoples)
system.diagnostics.debug.writeline(str);
}}
**實現了按人的性別,年齡,名字排序,可以實現公升序和降序。
結果:
原始資料:***:man age:
40name:name1
***:woman age:
15name:name11
***:man age:
35name:name4
***:man age:
55name:name3
***:man age:
35name:name5
***:man age:
60name:name2
***:woman age:
27name:name15
***:woman age:
37name:name14
***:woman age:
27name:name12
***:woman age:
47name:name13
公升序排列:
***:man age:
35name:name4
***:man age:
35name:name5
***:man age:
40name:name1
***:man age:
55name:name3
***:man age:
60name:name2
***:woman age:
15name:name11
***:woman age:
27name:name12
***:woman age:
27name:name15
***:woman age:
37name:name14
***:woman age:
47name:name13
降序排列:
***:woman age:
47name:name13
***:woman age:
37name:name14
***:woman age:
27name:name15
***:woman age:
27name:name12
***:woman age:
15name:name11
***:man age:
60name:name2
***:man age:
55name:name3
***:man age:
40name:name1
***:man age:
35name:name5
***:man age:
35 name:name4
python多列排序 python多列排序
python的sort 和sorted 函式可以進行多列排序。在乙個文字或者列表有多列時,這是乙個很好用的技巧。首先,看一下待排序的資料 這是乙個csv檔案,它有6列,我們需要首先對第一列排序,再對第六列排序 46896961,192100485,1,95wf5sm,1863,2014 12 18 ...
SQL ORDER BY 多列排序
最近學習my sql的時候對order by的多列排序邏輯不是很清楚,查閱了一些資料加上自己動手做了幾個小實驗清楚了不少,本結論僅適用於實驗條件下成立 列值為 int 先上結論 如 order by 列名1,列名2,列名3 若列名後不加限制條件,將直接按照離order by語句最近的無限制條件的列名...
MySQL 多列排序
mysql 基礎篇 三正規化mysql 軍規 mysql 配置 mysql 使用者管理和許可權設定 mysql 常用函式介紹 mysql 字段型別介紹 mysql 多列排序 mysql 行轉列 列轉行 mysql null 使用帶來的坑 mysql and 和 or 聯合使用帶來的坑 mysql 觸...