簡體   English   中英

在array中找到最高編號,使用while或for?

[英]Find the highest number in array , using while or for?

請給我一個問題,我需要在數組中找到最大的值。 人們會在數組中輸入名稱(textbox1)和貨幣(texbox2)。 我有2個按鈕,第一個按鈕保存到數組中,第二個用最大的錢寫下名字。

保存代碼:

    string[] name = new string[50];
    int items = 0;
    int[] money = new int[50];

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            Convert.ToInt32(textBox2.Text);
        }
        catch
        {
            name[items] = textBox1.Text;
            money[items] = Int32.Parse(textBox2.Text);
            items++;        
        }
    }

並向button2需要搜索最大的值並寫下名稱! 請幫我

 private void button2_Click(object sender, EventArgs e)
 {
    int maxIndex = 0;

    for(int i = 0; i < 50; i++)
    {
        if (money[i] > money[maxIndex])            
            maxIndex = i;            
    }

    MessageBox.Show(name[maxIndex] + " has biggest value " + money[maxIndex]);
 }    

要從數組中獲取Max int,可以使用IEnumerable.Max

money.Max();

但是可能會有不止一個名字具有相同的高額貨幣價值,也許您也需要處理這個問題,我認為Dictionary將是您的最佳選擇

private Dictionary<string, int> Names = new Dictionary<string, int>();

private void button1_Click(object sender, EventArgs e)
{
    int value = 0;
    if (int.TryParse(textBox2.Text, out value))
    {
        if (!Names.ContainsKey(textBox1.Text))
        {
            Names.Add(textBox1.Text, value);
        }
    }
}

private void button2_Click(object sender, EventArgs e)
{
    if (Names.Any())
    {
        int maxMoney = Names.Max(v => v.Value);
        var names = Names.Where(k => k.Value.Equals(maxMoney));
        foreach (var name in names)
        {
            // Names with the highest money value
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM