Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2012, 18:11   #1
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию C# Visual: как связать перечисление и jagged

Здраствуйте!
Не могли бы Вы меня проконсультировать, как правильно связать перечисление и ступенчатый массив?

Есть группы детского сада в перечислении. В каждой группе разное количество детей (их имена занесены в соответвующие массивы). А как правильно указать, что массив имен этих детей относится к такой-то группе из перечисления, а другие дети к другой группе? Я не смогла найти в Интернете как это грамотно делается.

Вот набросок кода

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Kids

 class Program
    {
        public enum Group  { Baby1, Baby2, Kids1, Kids2};
        static void Main(string[] args)
        {
             string [] [] childgarden = new string [/*здесь связь с Enum? */] [];

            ///////////////////////Дети группы Baby1////////////////////////////
                childgarden [0] = new string [5]
                 {
                    "Tanja", 
                    "Vanja",
                    "Vasja",
                    "Petja",
                     "Olja"

                };
             
             ///////////////////Дети группы Baby2/////////////////
             childgarden [1] = new string [4]
                 {
                    "Lena", 
                    "Fedja",
                    "Ira",
                    "Oleg"
                  };
             
             ///////////////////Дети группы Kids1/////////////////
             childgarden [2] = new string [3]
                 {
                    "Lesha", 
                    "Artur",
                    "Erik"
                  
                  };

             
              ///////////////////Дети группы Kids2/////////////////
             childgarden [3] = new string [5]
                 {
                    "Senja", 
                    "Misha",
                    "Anja",
                    "Nina",
                    "Tina"
                  };

        }
    }
}
Я уже два вечера думаю над этой задачей....Понимаю, что все это просто, но пока решения не придумать.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 11.02.2012, 18:20   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

как нибудь так

Код:
childgarden [Group.Baby1]
counter вне форума Ответить с цитированием
Старый 11.02.2012, 18:30   #3
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

По идее нужно как-то передавать индекс группы из перечисления. Так как по легенде, названия групп из перечисления могут изменятся. А как этот индекс вытащить в ступенчатый массив?
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 11.02.2012, 18:59   #4
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

я бы делал примерно так

Код:
using System;
using System.Text;

namespace Praktika
{


    class Groups
    {
        public string Name { get; set; }
        public string[] children { get; set; }

        public override string ToString()
        {
            string returned = string.Format("В групі {0} знаходяться {1} учнів Їх імена: \n", Name, children.Length);
            for (int i = 0; i < children.Length; i++)
            {
                returned += (children[i] + "\n");
            }
            return returned;
        }
    }

    class Enry
    {
        public static void Main()
        {
            
            string[] firstA = new string[5] { "Tanja", "Vanja", "Vasja", "Petja", "Olja" };
            string[] firstB = new string[3] { "test", "anotherName", "Igor" };
            string[] firstC = new string[5] { "bom_i_and_me", "Lexon", "chikago-_-", "HS-_-Ataka", "TrueSupport" };


            Groups group = new Groups();
            group.Name = "Перший А";
            group.children = firstC;
            Console.WriteLine(group.ToString());

            Console.ReadKey(true);
        }
    }



}
rUs_LAN вне форума Ответить с цитированием
Старый 12.02.2012, 02:35   #5
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Руслан, спасибо большое!
К сожаление, подобный фокус не удастся провернуть - по заданию мы используем именно перечисления и ступени(((((
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 12.02.2012, 14:39   #6
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace consoleCSharp
{
    class Program
    {
        //какой смисл от enum здесь непонятно
        public enum groups { FirstA, FirstB, FirstC };
        static void Main(string[] args)
        {
            string [] [] childgarden = new string [(int) groups.FirstC + 1] [];

            childgarden[(int) groups.FirstA] = new string[5]
                 {
                    "Tanja", 
                    "Vanja",
                    "Vasja",
                    "Petja",
                     "Olja"

                };

            childgarden[(int)groups.FirstB] = new string[4]
                 {
                    "Lena", 
                    "Fedja",
                    "Ira",
                    "Oleg"
                  };

            childgarden[(int)groups.FirstC] = new string[3]
                 {
                    "Lesha", 
                    "Artur",
                    "Erik"
                  
                  };


            for (int i = 0; i < childgarden[(int) groups.FirstB].Length; i++)
            {
                Console.WriteLine(childgarden[(int)groups.FirstB][i]);
            }

            Console.ReadKey();
            
             

        }
    }
}
rUs_LAN вне форума Ответить с цитированием
Старый 12.02.2012, 16:23   #7
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Спасибо, Руслан))) Буду разбираться.
А какой смысл в перечислении - очень простой: мы всяких структур как огня боимся, вот нас ими и туркают)))

Ваши весы пока не работают((( Но я помню)))
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 12.02.2012, 16:29   #8
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

на мой взгляд если не надо расширять возможности программы то группы можно описать с помощью структур, если в перспективе необходимо добавить какой то функционал то с помощью классов.
rUs_LAN вне форума Ответить с цитированием
Старый 12.02.2012, 16:36   #9
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Мы еще классы как таковые не проходили))
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 12.02.2012, 16:59   #10
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

ну в конце концов если вы изучили enum это не повод использовать его где не надо. Просто например на мой взгляд.

Код:
 for (int i = 0; i < childgarden[(int) groups.FirstB].Length; i++)
            {
                Console.WriteLine(childgarden[(int)groups.FirstB][i]);
            }
тяжелее понять чем

Код:
for (int i = 0; i < childgarden[1].Length; i++)
            {
                Console.WriteLine(childgarden[1][i]);
            }
rUs_LAN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Kак связать Visual Basic с Excel Vceznayka Microsoft Office Excel 2 23.12.2011 04:12
Windows-программа + web-обвязка, как связать и как заставить работать? Человек_Борща Общие вопросы по программированию, компьютерный форум 3 23.04.2011 19:07
Перечисление компонентов Zeraim Свободное общение 5 30.11.2008 20:20
Перечисление в столбце. Как "вытащить" нужное? Помогите! Tatyana БД в Delphi 2 10.07.2007 09:25