1

.ini.iniというファイルがあります。

;app ...

    [MSGS]

    title#0 = first title.. 
    message#0 = first message 

    title#1 = second title
    message#1 = second message 

    title#2 = third title
    message#2 = third message  

解析にはNini libを使用しています。私は辞書にそれを読む必要があります。

私はこれを試しました:

 public Dictionary<string, string> Read()
        {
            try
            {
                Dictionary<string, string> result = new Dictionary<string, string>();
                IConfigSource src = config;
                IConfig values = src.Configs["MSGS"];
                string[] keys = values.GetKeys();

                for (int count = keys.Length / 2,i = 0, j = 1; 
                        i < count; i++, 
                        j = i + 1)
                {
                    string titleKey = keys[i];
                    string messageKey = keys[j];
                    string titleVal = values.Get(titleKey);
                    string messageVal = values.Get(messageKey);
                    result.Add(titleVal, messageVal);

                }
            }
            catch (Exception)
            {

            }
            return null;
        }

出力は次のとおりです。

first title.. : first message
first message : second title
second title : second message

私が欲しい:

first title.. : first message
second title : second message
third title : third message

どうすればいいですか?前もって感謝します。:)

4

2 に答える 2

6
            for (int i = 0; i < keys.Length; i += 2)
            {
                string titleKey = keys[i];
                string messageKey = keys[i+1];
                string titleVal = values.Get(titleKey);
                string messageVal = values.Get(messageKey);
                result.Add(titleVal, messageVal);
            }
于 2011-11-05T18:19:42.160 に答える
2

ループ内に変数が多すぎます -jcountは必要なく、問題を混乱させるだけです:

for (i = 0; i < keys.Length; i += 2)
{
  string titleKey = keys[i];
  string messageKey = keys[i + 1];
  string titleVal = values.Get(titleKey);
  string messageVal = values.Get(messageKey);
  result.Add(titleVal, messageVal);
}
于 2011-11-05T18:17:27.047 に答える