Добавление значения из словаря c #

c# winforms dictionary foreach

79 просмотра

2 ответа

363 Репутация автора

у меня есть метод, в котором я добавляю вкладки, и я создал словарь для вкладок, потому что они должны отображаться в каждом режиме (ключ)

Я хочу повторить мой метод SwitchMode по forech и добавить вкладки.

Мой код:

    [Flags]
    public enum Mode
    {
        Start = 1,
        Test = 1 << 1,
        Config = 1 << 2,
    }

Итерация по словарю -> Здесь мне нужна помощь - как я могу добавить все вкладки, а не только первую, и так ли это итерация правильно?

public void SwitchMode (Mode mode)
        {
            foreach (var m in _tabDict)
            {
                if (m.Value == Mode.Start)
                {
                    AddTabPage (_tabDict.First ().Key);
                }
                if (m.Value == Mode.Test)
                {
                    AddTabPage (_tabDict.First ().Key);
                    // AddTabPage (_tabDict.All ()); // doesn't work
                }
                if (m.Value == Mode.Config)
                {
                    AddTabPage (_tabDict.First ().Key);
                }

            }
        }
Автор: IT_Geek_Oz Источник Размещён: 19.07.2016 09:12

Ответы (2)


2 плюса

24559 Репутация автора

Вы почти там, используйте m.Keyв своем цикле:

public void SwitchMode(Mode mode)
{
    foreach (var m in _tabDict)
    {
        if (m.Value == Mode.Start)
        {
            AddTabPage(m.Key);
        }
        if (m.Value == Mode.Test)
        {
            AddTabPage(m.Key);
        }
        if (m.Value == Mode.Config)
        {
            AddTabPage(m.Key);
        }

    }
}
Автор: Zein Makki Размещён: 19.07.2016 09:32

4 плюса

2868 Репутация автора

Решение

Вы можете перебрать коллекцию ключей

foreach (Type key in _tabDict.Keys) {
    AddTabPage(key);
}

Я не понимаю, какова функция флага Mode в вашем сценарии. Он не используется в AddTabPage. Так что нет никакой разницы между одной вкладкой и другой.

Автор: mnieto Размещён: 19.07.2016 09:33
Вопросы из категории :
32x32