この辞書から最初の行を取得する方法。約15枚のレコードを入れました。
Dictionary<string, Tuple<string, string>> headINFO =
new Dictionary<string, Tuple<string, string>> { };
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
}
辞書は順不同であるため、挿入した最初のキーと値のペアを取得する方法はありません。
LINQメソッドを呼び出すことで項目を取得できます。.First()
最も簡単な方法は、Linq のFirst
拡張メソッドを使用することです。
var firstHead = headINFO.First();
または、より安全にしたい場合は、辞書が空の場合にFirstOrDefault
メソッドが返されます。null
var firstHead = headINFO.FirstOrDefault();
辞書内のすべての項目をループしたい場合は、これを試してください。
foreach(var head in headINFO)
{
...
}
このコードを試してください。
headINFO.FirstOrDefault();
これを試して:
int c=0;
foreach(var item in myDictionary)
{
c++;
if(c==1)
{
myFirstVar = item.Value;
}
else if(c==2)
{
mySecondVar = item.Value;
}
......
}