如何从此字典中检索第一行。我记录了大约15条记录。
Dictionary<string, Tuple<string, string>> headINFO =
new Dictionary<string, Tuple<string, string>> { };
答案 0 :(得分:7)
您可以使用headINFO.First(),但除非您知道headINFO
中至少有一个条目,否则我建议您使用headINFO.FirstOrDefault()。
有关两个可用here之间差异的详细信息。
修改 添加了简单示例
以下是有关如何使用FirstOrDefault()
var info = headINFO.FirstOrDefault().Value;
Console.WriteLine(info.Item1); // Prints Tuple item1
Console.WriteLine(info.Item2); // Prints Tuple item2
如果要打印多个项目,可以使用Take(x)。在这种情况下,我们将遍历三个字典项,但您可以轻松修改数字以获取更多项目。
foreach (var info in headINFO.Take(3))
{
Console.WriteLine(info.Value.Item1);
Console.WriteLine(info.Value.Item2);
}
您还应该记住,上述foreach
不允许您直接修改Dictionary
条目的值。
编辑2: 明确使用First()并添加干净的foreach示例
请注意,虽然First()
和FirstOrDefault()
会为您提供单个项目,但它不会保证它会成为第一个添加的项目。
此外,如果您只想循环浏览所有项目,可以删除上述foreach循环中的Take(3)
。
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
}
答案 1 :(得分:5)
字典是无序的,因此无法检索您插入的第一个键值对。
您可以通过调用LINQ .First()
方法检索 项。
答案 2 :(得分:3)
最简单的方法就是使用Linq的First
扩展方法:
var firstHead = headINFO.First();
或者如果您想要更安全,如果字典为空,FirstOrDefault
方法将返回null
:
var firstHead = headINFO.FirstOrDefault();
如果您想循环浏览字典中的所有项目,请尝试以下操作:
foreach(var head in headINFO)
{
...
}
答案 3 :(得分:2)
试试这段代码。
headINFO.FirstOrDefault();
答案 4 :(得分:-1)
试试这个:
int c=0;
foreach(var item in myDictionary)
{
c++;
if(c==1)
{
myFirstVar = item.Value;
}
else if(c==2)
{
mySecondVar = item.Value;
}
......
}