C# App.configのデータ取得について


C#のApp.configについての質問です。  
アプリを立ち上げたときに、App.configからドロップダウンリスト1のデータおよび、その他のドロップダウンリスト2のデータを読み取りたいと思っています。また、keyとそのvalueは後に使用するので、まだ実装していませんが、App.configから読み込むときに、配列もしくはリストに格納しようと考えています。

App.configにデータを追加することで、ユーザはプログラムをいじることなく、ドロップダウンリストのリストや、その他のドロップダウンリストのリストを増やせるようにしたいと考えています。  
現在は、foreachで全てを読み込むというプログラムをしようと考えていますが、  
そうなった際にドロップダウンリスト1に使用するデータとドロップダウンリスト2に使用するデータをどのように分けたらよいか、というのが質問です。  
宜しくお願い致します。

class1↓

[code]

    private void Form1_Load(object sender, EventArgs e)
        {
            //すべてのキーとその値を取得(本当はcomboBox1と2で分けたい)
            foreach (string key in System.Configuration.ConfigurationSettings.AppSettings.AllKeys)
            {
                //key=a,bがcomboBox1
                comboBox1.Items.Add(System.Configuration.ConfigurationSettings.AppSettings[key]);
                //配列に格納する機能未実装
    
                //key=AB,CDがcomboBox2
                comboBox2.Items.Add(System.Configuration.ConfigurationSettings.AppSettings[key]);
                //配列に格納する機能未実装
            }
        }
    
[/code]

App.config↓

[code]

     <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
        </startup>
      <appSettings>
    　　　　//リスト1
        <add key="a" value="1"/>
        <add key="b" value="2"/>
        //ユーザはここにどんどん追加
        //リスト2
        <add key="AB" value="3"/>
        <add key="CD" value="4"/>
        //ユーザはここにどんどん追加
      </appSettings>
    </configuration>
    
[/code]




基本的にはpgrhoさんの回答の通りですが、Visual Studioには便利な機能がいくつか用意されていますので、その部分を紹介します。

まず、`Entry`クラス`EntryCollection`クラスを作らなくともSettings.settingsに`System.Collections.Specialized.StringCollection`が用意されていますのでこれを使うと楽です。これによって作成されるApp.configは

[code]

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <userSettings>
        <WindowsFormsApp1.Properties.Settings>
          <setting name="Key1" serializeAs="Xml">
            <value>
              <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                <string>1</string>
                <string>2</string>
              </ArrayOfString>
            </value>
          </setting>
        </WindowsFormsApp1.Properties.Settings>
      </userSettings>
    </configuration>
    
[/code]

となります（`Entry`でなく`string`になりますね）。

また、このコレクションを`ComboBox`に設定するには`DataSource`プロパティが使えます。

[code]

    comboBox1.DataSource = Settings.Default.Key1;
    
[/code]

ただしApp.configに記述されていない項目も追加する場合にはこの方法は使えず、１項目ずつ`Add`していく必要があります。

