C#。搜索最长元素的字符串数组

时间:2013-12-03 18:40:04

标签: algorithm arrays

我想知道如果有几个同样长度的人,我怎么能把所有最长的人都拿走?

如果只有一个人是最长的,那么它工作正常,名字最长的人将显示在MessageBox中。但是如果有多个人是最长的,那么这段代码将不起作用......

public partial class Form1 : Form
{
    int[] längdArray = new int[5];
    string[] namnArray = new string[5];
    int namn = 0;
    int längd = 0;

    public Form1()
    {
        InitializeComponent();
    }

    private void btnVisa_Click(object sender, EventArgs e)
    {
        int längst = 0;
        int längdvärdet = 0;
        int längdindex = 0;

        string name = textBox1.Text;
        namnArray[namn] = name;
        namn = namn + 1;

        textBox1.Clear();

        int centimeter = int.Parse(textBox2.Text);
        längdArray[längd] = centimeter;
        längd++;

        textBox2.Clear();

        listBox1.Items.Add(name + " " + centimeter + " centimeter ");

        if (längd == 5)
        {
            btnVisa.Enabled = false;

            foreach (int antalLängder in längdArray)
            {
                if (antalLängder > längst)
                {
                    längst = antalLängder;
                    längdvärdet = längdindex;

                }
                längdindex++;


            }
            string test = namnArray[längdvärdet]

            MessageBox.Show(" Längsta person är " + test  + " som är " + längst + " centimeter lång ");

        }

1 个答案:

答案 0 :(得分:0)

定义当有多个人时您希望应用呈现的行为。应该全部显示,还是任何一个或其他显示?尝试使用对象构造,它们更容易操作。 C#是一种面向对象的语言。将名称和长度放在一个结构中然后使用LINQ。