0

アイテムのペアを含む既存の文字列配列があります。その既存の配列から辞書を作成する必要があります。配列には、リンゴ、A、バナナ、B、カンタロープ、C ... ... のようなペアが含まれています。

果物をキーとして、文字を辞書の値として割り当てるにはどうすればよいですか? 配列の値を書き換えずにそれを行う方法はありますか??


辞書を書いたので..... 果物のリストをスキャンするプログラムが必要で、キー Banana が表示されるたびに、値 B を出力する必要があります。何かアイデアはありますか?

4

4 に答える 4

2

LINQ の「ワンライナー」愛好家向け:

Enumerable.Range(0, myArray.Length / 2)
          .ToDictionary(i => myArray[2*i], 
                        i => myArray[2*i+1])

ただし、この問題を解決するために作成するコードは、最も読みやすいものではありません。

于 2013-08-27T17:02:01.737 に答える
1

モジュラス演算子を少し操作すると、それが可能になります。まず、配列の要素数が偶数であることを確認します。次に、すべての偶数インデックスを取得し、それに加えて次のインデックスをキーと値として追加します。おそらく、それらを反転させたいと思うでしょう(キーまたは値が配列の最初にあるかどうかはわかりません)が、これは基本的にそのまま機能するはずです。

Dictionary<string, string> kvs = new Dictionary<string, string>();

if (array.Length % 2 == 0)
{
    for (int i = 0; i < array.Length; i++)
    {
        if (i % 2 == 0)
        {
            kvs.Add(array[i], array[i+1]);
        }
    }
}
else
   // we have a problem with our array
于 2013-08-27T16:54:28.153 に答える