2016-07-19 2 views
0

У меня есть метод, где я добавляю Tabpages и я создал словарь для tabpages, потому что они должны быть показаны в их каждом режиме (Key)Добавление значения из словаря в C#

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

Моего кода:

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

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

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); 
       } 

      } 
     } 
+1

'm' является KeyValuePair и имеет свойство' Key' ('m.Key'). это то, что вы ищете? – ASh

ответ

4

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

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

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

2

Вы почти там, используйте 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); 
     } 

    } 
} 
Смежные вопросы