37 lines
No EOL
1,020 B
C#
37 lines
No EOL
1,020 B
C#
namespace Marathons;
|
|
|
|
public sealed class Participant
|
|
{
|
|
public readonly int StartNo;
|
|
public readonly string Name;
|
|
public readonly TimeSpan CompletionTime;
|
|
|
|
public Participant(int startNo, string name, TimeSpan completionTime)
|
|
{
|
|
StartNo = startNo;
|
|
Name = name;
|
|
CompletionTime = completionTime;
|
|
}
|
|
|
|
public int CompareTo(Participant participant)
|
|
{
|
|
// Check if the completion time and startno is the same
|
|
if (CompletionTime == participant.CompletionTime && StartNo == participant.StartNo)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
// Check if the completion time is the same
|
|
if(CompletionTime == participant.CompletionTime)
|
|
{
|
|
return StartNo < participant.StartNo ? -1 : 1;
|
|
}
|
|
|
|
return CompletionTime < participant.CompletionTime ? -1 : 1;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return $"{Name} (Start# {StartNo:000}) finished in {CompletionTime}";
|
|
}
|
|
} |