Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C# - Seřadit a vypsat

Dobrý den mám takovou prosbu, potřebuji kód, který mi seřadí data které uživatel vypíše do 2 textboxů ( jméno a plat ) To se mi uloží do pole. A když jich třeba napíše 20 , aby po kliknutí buttonu2 vypsalo toho, kdo má největší plat. Kód pro zapsaní jmen a platů do pole je hotový, potřebuji jen kód pro vypsání děkuji moc všem.

Kód:

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        string[] jmeno = new string[50];
        int polozka = 0;
        int[] plat = new int[50];



        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            jmeno[polozka] = Convert.ToString(textBox1);
            jmeno[polozka] = Convert.ToString(textBox2);
            polozka++;

        }

        private void button2_Click(object sender, EventArgs e)
        {
            



        }
    }
}

Takhle to bude vypadat graficky.
[www.imagehosting.cz]

V příloze je prográmek.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
To mám udělat pomocí cyklu while že? A bude tam i ta ikrementace kde bude i++ na každý index v poli…
medvidekcz3 27.11.2012 19:40
medvidekcz3
Buď while nebo for, to je jedno. Hledáš největší prvek, tak co asi bude v podmínce? nový
Wikan 27.11.2012 19:41
Wikan
Niekde musis mat predsa ulozene ze kolko bolo tych poloziek celkovo ulozenych do pola. Tak jak to ma… nový
MM.. 27.11.2012 19:42
MM..
V prvom rade by som sa vyhol anti-patternu spriahnutých polí, do ktorých ukladáš meno a plat osoby.… poslední
los 28.11.2012 23:50
los

V prvom rade by som sa vyhol anti-patternu spriahnutých polí, do ktorých ukladáš meno a plat osoby. Meno aj plat sa týkajú jednej osoby, takže má zmysel vytvoriť si triedu, ktorá bude tieto dve vlastnosti obsahovať. Tiež je logickejšie si to ukladať do zoznamu než do poľa.

Program by mohol vyzerať napríklad takto:

using System;
using System.Linq;
using System.Collections.Generic;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
	public partial class Form1 : Form
	{
		List<PersonInfo> persons = new List<PersonInfo>();

		public Form1()
		{
			InitializeComponent();
		}

		private void button1_Click(object sender, EventArgs e)
		{
			persons.Add(new PersonInfo
			{
				Name = textBox1.Text,
				Salary = int.Parse(textBox2.Text)
			});
		}

		private void button2_Click(object sender, EventArgs e)
		{
			var max = persons.First();
			foreach (var person in persons.Skip(1))
				if (person.Salary > max.Salary)
					max = person;
			MessageBox.Show(max.Name);
		}

		public class PersonInfo
		{
			public string Name { get; set; }
			public int Salary { get; set; }
		}
	}
}

Zpět do poradny Odpovědět na původní otázku Nahoru