Array of objects

Dział z pytaniami o absolutne podstawy programowania w C# (dla początkujących).

Moderator: xxSlayeRxx

Array of objects

Sponsor

Sponsor
 

Array of objects

Postprzez makoszet » N lut 19, 2017 6:43 pm

Cześć, czy mógłby mi ktoś zasugerować jak z tablicy obiektów w której mamy np. Pracowników, zmienne: nazwisko, płaca. Wyciągnąć to który z nich ma największą płacę i zwrócić jego nazwisko?
makoszet
New member
 
Posty: 1
Dołączył(a): N lut 19, 2017 6:40 pm

Re: Array of objects

Postprzez Nebra » Pn lut 27, 2017 6:55 pm

Witam,
zacząłem uczyć się C# jakieś 2 tyg temu... przeczytałem wątek i stwierdziłem, że mogę spróbować napisać taki program... Działa... zapewne da się ulepszyć wiele rzeczy - uwagi mile widziane :)

Kod: Zaznacz cały
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace array_of_objects
{
 
    class Program
    {
        public struct Pracownik
        {
            public string Nazwisko;
            public int Pensja;
        }

        static void Main(string[] args)
        {

            Pracownik[] ListaPracownikow = new Pracownik[5];
           
            // przykładowe wypełnienie struktury

            ListaPracownikow[0].Nazwisko = "Kowalski";
            ListaPracownikow[0].Pensja = 1000;
            ListaPracownikow[1].Nazwisko = "Nowak";
            ListaPracownikow[1].Pensja = 2000;
            ListaPracownikow[2].Nazwisko = "Michalczewski";
            ListaPracownikow[2].Pensja = 1500;
            ListaPracownikow[3].Nazwisko = "Sadowski";
            ListaPracownikow[3].Pensja = 3000;
            ListaPracownikow[4].Nazwisko = "Królewski";
            ListaPracownikow[4].Pensja = 2500;

            int najPensja = ListaPracownikow[0].Pensja;
            int index = 0;

            for (int i = 0; i < ListaPracownikow.Length; i++)
            {
               
                if (ListaPracownikow[i].Pensja > najPensja)
                {
                    najPensja = ListaPracownikow[i].Pensja;
                    index = i;
                }
            }

            Console.WriteLine("Pracownik z najwyższą pensją to: {0} \nJego pensja wynosi: {1:C0}", ListaPracownikow[index].Nazwisko, ListaPracownikow[index].Pensja);
            Console.ReadLine();
        }
    }
}


Po otrzymanej zje... eghm, konstruktywnej krytyce wersja poprawiona:

Kod: Zaznacz cały
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArrayOfObjects
{
 
    class Program
    {
        class Worker
        {
            public string Surname { get; set; }
            public int Salary { get; set; }
        }

        static void Main(string[] args)
        {

            Worker[] WorkerList = new Worker[5];

            for (int i = 0; i < WorkerList.Length; i++)
            {
              WorkerList[i] = new Worker();
            }

            // przykładowe wypełnienie tablicy instancji klasy Worker

            WorkerList[0].Surname = "Kowalski";
            WorkerList[0].Salary = 1000;
            WorkerList[1].Surname = "Nowak";
            WorkerList[1].Salary = 2000;
            WorkerList[2].Surname = "Michalczewski";
            WorkerList[2].Salary = 1500;
            WorkerList[3].Surname = "Sadowski";
            WorkerList[3].Salary = 3000;
            WorkerList[4].Surname = "Królewski";
            WorkerList[4].Salary = 2500;
           
           
            Worker highestSalaryWorker = new Worker();
         
            foreach (var worker in WorkerList)
            {
                if (worker.Salary > highestSalaryWorker.Salary)
                {
                    highestSalaryWorker = worker;
                }
            }

            Console.WriteLine("Pracownik z najwyższą pensją to: {0} \nJego pensja wynosi: {1:C0}", highestSalaryWorker.Surname, highestSalaryWorker.Salary);
            Console.ReadLine();
        }
    }
}


pozdrawiam,
N.
Nebra
New member
 
Posty: 3
Dołączył(a): Pn lut 27, 2017 6:06 pm

Re: Array of objects

Postprzez xxSlayeRxx » Śr kwi 26, 2017 5:50 pm

Wiem, ze troche pozno, ale :)

1 linijka, bez forow, bez ifow: Linq radze poczytac

https://dotnetfiddle.net/OAoIvs
xxSlayeRxx
Member
 
Posty: 661
Dołączył(a): Pt lip 08, 2011 10:24 pm

Re: Array of objects

Sponsors

Sponsor
 


Powrót do Newbie

Kto przegląda forum

Użytkownicy przeglądający ten dział: Google Adsense [Bot] i 8 gości