2009/01/07(Wed) 14:33:55 編集(投稿者)
> なお、Listを入れ子にした理由ですが、
> ある学校の生徒を成績で3グループに分けます。
> この1グループがList<String>になり、
> ここに生徒の氏名を入れていきます。
> 入れ終わったら、氏名でソートします。
> そしてこの3つのList<String>を決められた成績順で
> List<List<String>>につっこんでいくと、
> 成績順かつ氏名順で取り出せる、
> ということをやりたかったためです。
僕なら成績と氏名をメンバに持つ
class レコード { public int 成績; public string 氏名; }
を LinkedList<レコード> にぶちこみます。
# 総数が既知なら レコード[] で十分。
んでもって成績と氏名をキー(大小判定基準)としてソートしますが。
using System;
class レコード {
public int 成績;
public string 氏名;
public レコード(int score, string name)
{ 成績 = score; 氏名 = name; }
public static int レコード比較(レコード x, レコード y) {
int result = x.成績.CompareTo(y.成績);
return result == 0 ? x.氏名.CompareTo(y.氏名) : result;
}
public static void Main() {
レコード[] 成績表 = {
new レコード(2, "たなか いちろう"),
new レコード(1, "なかむら くにお"),
new レコード(3, "あいざわ こうへい"),
new レコード(2, "かとう もとこ"),
new レコード(3, "さいとう みき"),
new レコード(1, "はせがわ きょうこ")
};
Array.Sort(成績表, レコード比較);
foreach ( レコード rec in 成績表 ) {
Console.WriteLine("{0} {1}", rec.成績, rec.氏名);
}
}
}