私たちは水泳選手とそのタイムのデータベースを持っています。ランキングを作成するには、各アスリートの最速タイムを取得します。
var rankings = (
from r in _db.Results
orderby r.swimtime
group r by r.athleteid into rg
select new
{
AthleteId = rg.Key,
FirstName = rg.Min(f2 => f2.Athlete.firstname),
Swimtime = rg.Min(f8 => f8.swimtime),
hours = rg.Min(f9 => f9.swimtime.Hours),
minutes = rg.Min(f10 => ("00" + f10.swimtime.Minutes.ToString()).Substring(("00" + f10.swimtime.Minutes.ToString()).Length - 2)), // to get 2 digits in minutes
seconds = rg.Min(f11 => ("00" + f11.swimtime.Seconds.ToString()).Substring(("00" + f11.swimtime.Seconds.ToString()).Length - 2)), // to get 2 digits in seconds
milliseconds = rg.Min(f12 => (f12.swimtime.Milliseconds.ToString() + "00").Substring(0, 2)), // because miliseconds are not always filled
}
);
ランキングは正しく作成されるようになりましたが、表示される時間が正しくありません。
問題が何であるかはわかっていますが、それを修正する方法がわかりません:
データベースには、00:01:02:10 (1min2sec10) と 00:00:56:95 (56sec95) の 2 つのスイマーがあります。
得られる結果は、分単位の最小値 (=00)、秒単位の最小値 (=02)、およびミリ秒単位の最小値 (=10)
であり、時間は 00:00:02:10 になります。
取得する必要があるのは、最速の時、分、秒、およびミリ秒 (=00:00:56:95) です。
これを修正する方法についてのアイデアはありますか?