私は下の選択ソート方法を書いています。私は学校の演習であるので、一般的なコードを保持したいと思いますが、私はLinqのように、それを行う正しい方法があることを理解しています。 プロパティPersonalNumberだけをソートするだけでなく、うまく動作します。C#でリストをソートする方法
temp = list[i].PersonalNumber;
list[i].PersonalNumber = list[posMin].PersonalNumber;
list[posMin].PersonalNumber = temp;
リスト内の各インデックスに含まれるすべてのプロパティを並べ替える方法はありますか?あるいは、各プロパティのために上記のコードを記述する必要がありますか?合計で3つのプロパティがあります。
詳しい方法:
public static void SelectionSort(List<Person> list) {
// With this method the Person list is sorted in ascending order.
//posMin is short for position of min
int posMin, temp;
for (int i = 0; i < list.Count - 1; i++) {
posMin = i;//Set posMin to the current index of array
for (int j = i + 1; j < list.Count; j++) {
if (list[j].PersonalNumber < list[posMin].PersonalNumber) {
//posMin will keep track of the index that min is in, this is needed when a swap happens
posMin = j;
}
}
//if pos_min no longer equals i than a smaller value must have been found, so a swap must occur
if (posMin != i) {
temp = list[i].PersonalNumber;
list[i].PersonalNumber = list[posMin].PersonalNumber;
list[posMin].PersonalNumber = temp;
}
}
}
、それがソートされます簡単な基準であなたのリスト –
こんにちは、私はまだかなり初心者です。私は後でLinqを残す。私はまだ基本を学んでいます。 – Max
Linqはこの "ソート"のためのあなたの友人です:-p http://stackoverflow.com/questions/722868/sorting-a-list-using-lambda-linq-to-objects – ManoDestra