1

私はプログラムをやった

string[] arrExposureValues = stock.ExposureCollection[dt].Values.ToArray();
for(int i = 0; i < arrExposureValues.Length; i++)
    Console.WriteLine(arrExposureValues[i]);

何も問題はなく、正常に動作します。

しかし、以下のようなことは可能ですか

for(int i = 0; i < stock.ExposureCollection[dt].Count; i++)    
    Console.WriteLine(stock.ExposureCollection[dt].Values[i]);

これは私の知識のためです(基本的には1行で同じことを達成しようとしています)。

注: ExposureCollection はDictionary<DateTime, Dictionary<string, string>>

まず第一に、それが可能かどうかは疑問です!

C#3.0を使用しています。

ありがとう。

4

4 に答える 4

1

まず、あなたの仕事は何ですか?辞書の列挙と内部辞書の列挙を同時に行いますか?

foreach(var item in dic)
{
    foreach(var inner in item.Value)
    {
        Console.WriteLine("key={0}, inner key={1}, inner value={2}",
            item.Key, inner.Key, inner.Value);
    }
}
于 2010-06-01T08:01:55.877 に答える
1

foreach を使用して、stock.ExposureCollection[dt].Keys リストを列挙できます。

foreach( string key in stock.ExposureCollection[dt].Keys ) {
  Console.WriteLine(stock.ExposureCollection[dt][key]);
}
于 2010-06-01T07:58:16.833 に答える
0
for(int i = 0; i < stock.ExposureCollection[dt].Count; i++)     
    Console.WriteLine(stock.ExposureCollection[dt].Values.ElementAt(i)); 
于 2010-06-01T09:34:16.967 に答える
-1

SortedList を試してみてください - インデックス付けできる Values や Keys などのプロパティがあります。

于 2010-06-01T07:54:49.640 に答える