работа с Enum в С #

274
10 июля 2017, 14:45

Проблема с пониманием Enum — не могу разобраться, как искать в зубчатом массиве и как сравнивать в зубчатом массиве данные, применяя Enum. Если Вам не сложно, покажите или объясните, как для тупого. Вот то, что есть:

    class Program
{
    // 1) declare enum ComputerType
    enum ComputersType
    {
        Desktop = 0,
        Laptop = 1,
        Server = 2,
    }
    // 2) declare struct Computer
    struct Computer
    {
        public ComputersType comp;
        public int CPU;
        public float HGz;
        public int memory;
        public int HDD;
    }
    static void Main(string[] args)
    {
        // 3) declare jagged array of computers size 4 (4 departments)
        var departmentComputers = new Computer[4][];
        // 4) set the size of every array in jagged array (number of computers)
        departmentComputers[0] = new Computer[5];
        departmentComputers[1] = new Computer[3];
        departmentComputers[2] = new Computer[5];
        departmentComputers[3] = new Computer[4];
        // 5) initialize array
        // Note: use loops and if-else statements
        Computer Desktop = new Computer();
        {
            Desktop.comp = ComputersType.Desktop;
            Desktop.CPU = 2;
            Desktop.HGz = 1.6F;
            Desktop.memory = 4;
            Desktop.HDD = 200;
        }
        Computer Laptop = new Computer();
        {
            Laptop.comp = ComputersType.Laptop;
            Laptop.CPU = 2;
            Laptop.HGz = 1.6F;
            Laptop.memory = 4;
            Laptop.HDD = 200;
        }
        Computer Server = new Computer();
        {
            Server.comp = ComputersType.Server;
            Server.CPU = 2;
            Server.HGz = 1.6F;
            Server.memory = 4;
            Server.HDD = 200;
        }
        departmentComputers[0][0] = Desktop;
        Computer[] department;
        int computerIndex;
        department = departmentComputers[0];
        computerIndex = 0;
        for (var i = 0; i < 2; i++)
            department[computerIndex++] = Desktop;
        for (var i = 0; i < 2; i++)
            department[computerIndex++] = Laptop;
        for (var i = 0; i < 1; i++)
            department[computerIndex++] = Server;
        department = departmentComputers[1];
        computerIndex = 0;
        for (var i = 0; i < 3; i++)
            department[computerIndex++] = Laptop;
        department = departmentComputers[2];
        computerIndex = 0;
        for (var i = 0; i < 3; i++)
            department[computerIndex++] = Desktop;
        for (var i = 0; i < 2; i++)
            department[computerIndex++] = Laptop;
        department = departmentComputers[3];
        computerIndex = 0;
        for (var i = 0; i < 1; i++)
            department[computerIndex++] = Desktop;
        for (var i = 0; i < 1; i++)
            department[computerIndex++] = Laptop;
        for (var i = 0; i < 2; i++)
            department[computerIndex++] = Server;
        // 6) count total number of every type of computers
        // 7) count total number of all computers
        // Note: use loops and if-else statements
        // Note: use the same loop for 6) and 7)
            for (var x = 0; x < department.GetLength(x); x++)
            {
                for (var y = 0; y < department.GetLength(y); y++)
                {
                     for (int k = 0; k < departmentComputers[x][y]; k++)

А дальше я сижу второй день и ничего не получается.

Answer 1

Не понимаю, зачем ты ищешь только в одном department = departmentComputers[3];

 foreach (var i1 in department)
        {
            Console.WriteLine(i1);
            Console.WriteLine(i1.comp);
            Console.WriteLine(i1.CPU);
            Console.WriteLine(i1.HDD);
            Console.WriteLine(i1.HGz);
            Console.WriteLine(i1.memory);
        }

Вот так будет искать по всем

var c = new Computer[][] { departmentComputers[0], departmentComputers[1], departmentComputers[2], departmentComputers[3] };
        foreach (var i1 in c)
        {

            foreach (var i2 in i1)
            {
                if (i2.comp == ComputersType.Server)
                {
                    Console.WriteLine("Server ============================");
                }
                else { Console.WriteLine("?============================="); }
                //Так можешь использовать номер enum
                Console.WriteLine("ComputersType=" + i2.comp + "=" + (int)i2.comp);
                //Console.WriteLine(i2);
                Console.WriteLine(i2.comp);
                Console.WriteLine(i2.CPU);
                Console.WriteLine(i2.HDD);
                Console.WriteLine(i2.HGz);
                Console.WriteLine(i2.memory);               

            }
        }
READ ALSO
Можно ли получить имя процесса текущего активного окна?

Можно ли получить имя процесса текущего активного окна?

Я хочу написать для себя простенький сервис для отслеживания того, с какими программами я работаю в течении дня и сколько времени на них трачу

289
C# Изменить содержимое тега textarea

C# Изменить содержимое тега textarea

(C#) Собственно пользуюсь WebBrowser в WindowsFormСпокойно заполнял данные форм на странице пока не дошел до этого:

231
Что посоветуете для захвата видео с вебкамеры?

Что посоветуете для захвата видео с вебкамеры?

В моём проекте требуется реализация захвата видео с вебкамерыКакую библиотеку либо WinApi посоветуете для этого использовать?

216
Центральное значение по оси X

Центральное значение по оси X

Есть график (статичный):

283