0
テキストボックスからランナータイムを取得し、結果のテキストボックスに降順で結果を配置しようとしています。注文は1位、2位、3位にする必要があります。私は条件文を使ってみましたが、たくさんのコードを使わなければならないようです。 1位、2位、3位を決める方法を見つける別の方法はありますか?ここに私のコードです。入力テキストボックスとプレースバリュー結果のテキストボックスの最高値と最低値を取得
namespace Calculate Runner Time
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Calculatebutton_Click(object sender, EventArgs e)
{
string Runner1Name;
string Runner2Name;
string Runner3Name;
double Runner1Time;
double Runner2Time;
double Runner3Time;
//double FirstPlace;
//double SecondPlace;
//double ThirdPlace;
//get runner names
Runner1Name = Runner1NametextBox.Text;
Runner2Name = Runner2NametextBox.Text;
Runner3Name = Runner3NametextBox.Text;
//check if Runner1Name is empty
if (string.IsNullOrEmpty(Runner1Name))
{
MessageBox.Show("The Runner 1 Name cannot be empty ", "Invalid Runner Name",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
//check if Runner1Name is empty
else if (string.IsNullOrEmpty(Runner2Name))
{
MessageBox.Show("The Runner 2 Name cannot be empty ", "Invalid Runner Name",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if (string.IsNullOrEmpty(Runner3Name))
{
MessageBox.Show("The Runner 3 Name cannot be empty ", "Invalid Runner Name",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if (!double.TryParse(Runner1TimetextBox.Text, out Runner1Time))
{
MessageBox.Show("Please Input a Positive number for Runner 1", "Invalid Input",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if (!double.TryParse(Runner2TimetextBox.Text, out Runner2Time))
{
MessageBox.Show("Please Input a Positive number for Runner 2", "Invalid Input",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if (!double.TryParse(Runner3TimetextBox.Text, out Runner3Time))
{
MessageBox.Show("Please Input a Positive number for Runner 3", "Invalid Input",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
//else if (Runner1Time == Runner2Time & Runner1Time == Runner3Time)
//{
// FirstPlacetextBox.Text = Runner1Name.ToString();
// FirstPlacetextBox.Text = Runner2Name.ToString();
// FirstPlacetextBox.Text = Runner3Name.ToString();
//}
else if (Runner1Time >= Runner2Time & Runner1Time >= Runner3Time)
{
FirstPlacetextBox.Text = Runner1Name.ToString();
}
else if (Runner2Time >= Runner1Time & Runner2Time >= Runner3Time)
{
FirstPlacetextBox.Text = Runner2Name.ToString();
}
else if (Runner3Time >= Runner2Time & Runner3Time >= Runner1Time)
{
FirstPlacetextBox.Text = Runner3Name.ToString();
}
else if (Runner1Time <= Runner2Time & Runner1Time <= Runner3Time)
{
SecondPlacetextBox.Text = Runner1Name.ToString();
}
else if (Runner2Time <= Runner1Time & Runner2Time <= Runner3Time)
{
SecondPlacetextBox.Text = Runner2Name.ToString();
}
else if (Runner3Time <= Runner2Time & Runner3Time <= Runner1Time)
{
SecondPlacetextBox.Text = Runner3Name.ToString();
}
// else if()
{
}
}
private void Closebutton_Click(object sender, EventArgs e)
{
this.Close();
}
private void Resetbutton_Click(object sender, EventArgs e)
{
//clear runnername textboxes
Runner1NametextBox.Text = string.Empty;
Runner2NametextBox.Text = string.Empty;
Runner3NametextBox.Text = string.Empty;
//clear runnertime
Runner1TimetextBox.Text = "";
Runner2TimetextBox.Text = "";
Runner3TimetextBox.Text = "";
//clears result textbox
FirstPlacetextBox.Text = "";
SecondPlacetextBox.Text = "";
ThirdPlacetextBox.Text = "";
感謝。私はWindowsフォームで作業しているので、私は "Console.WriteLine($" First place {item.Key} ");)を使用する必要はないので、ラベルに結果を表示したい"だから私はどのようにそのアイデアを行うか分からないのですか? @Dmitry Pokhlebaev – Becca
Consoleの代わりにFirstPlacetextBox、SecondPlacetextBoxなどを使用できます。たとえば、 "FirstPlacetextBox.Text = string.Format($" First place {item.key} ");" –
私は自分のコードの2行を変更したことに注意してください: var bestTime = results.Min(item => item.Value); var worstTime = results.Max(item => item.Value); –