0

この辞書から最初の行を取得する方法。約15枚のレコードを入れました。

Dictionary<string, Tuple<string, string>> headINFO = 
                                   new Dictionary<string, Tuple<string, string>> { };
4

5 に答える 5

7

headINFO.First()を使用できますが、少なくとも 1 つのエントリが常に存在することがわかっている場合を除き、 headINFO.FirstOrDefault (headINFO )を使用することをお勧めします。

2 つの違いの詳細については、こちらを参照してください

編集: 簡単な例を追加

ここに使用方法の簡単な例がありますFirstOrDefault()

var info = headINFO.FirstOrDefault().Value;
Console.WriteLine(info.Item1); // Prints Tuple item1
Console.WriteLine(info.Item2); // Prints Tuple item2

複数のアイテムを印刷したい場合は、Take(x)を使用できます。この場合、3 つの辞書アイテムをループしますが、数を簡単に変更してより多くのアイテムを取得できます。

foreach (var info in headINFO.Take(3))
{
    Console.WriteLine(info.Value.Item1);
    Console.WriteLine(info.Value.Item2);
}

また、上記ではエントリforeachの値を直接変更できないことにも注意してください。Dictionary

Edit2: First() の使用法を明確にし、クリーンな foreach の例を追加しました

First()FirstOrDefault()は 1 つのアイテムを提供しますが、それが最初に追加されるアイテムになることを保証するものではないことに注意してください。

また、単純にすべての項目をループしたい場合は、Take(3)上記の foreach ループで を削除できます。

foreach (var info in headINFO)
{
    Console.WriteLine(info.Key);          // Print Dictionary Key
    Console.WriteLine(info.Value.Item1);  // Prints Turple Value 1
    Console.WriteLine(info.Value.Item2);  // Prints Turple Value 2
}
于 2013-03-22T02:41:31.210 に答える
5

辞書は順不同であるため、挿入した最初のキーと値のペアを取得する方法はありません。

LINQメソッドを呼び出すこと項目を取得できます。.First()

于 2013-03-22T02:40:03.133 に答える
3

最も簡単な方法は、Linq のFirst拡張メソッドを使用することです。

var firstHead = headINFO.First();

または、より安全にしたい場合は、辞書が空の場合にFirstOrDefaultメソッドが返されます。null

var firstHead = headINFO.FirstOrDefault();

辞書内のすべての項目をループしたい場合は、これを試してください。

foreach(var head in headINFO)
{
    ...
}
于 2013-03-22T02:40:16.247 に答える
2

このコードを試してください。

headINFO.FirstOrDefault();
于 2013-03-22T06:37:09.203 に答える
-1

これを試して:

    int c=0;

    foreach(var item in myDictionary)
    {
         c++;
         if(c==1)
         {
             myFirstVar = item.Value;
         }
         else if(c==2)
         {
             mySecondVar = item.Value;
         }
          ......
    }
于 2013-03-22T02:59:21.257 に答える