0

如何从此字典中检索第一行。我放了大约 15 条记录。

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

5 回答 5

7

您可以使用headINFO.First(),但除非您知道总会有至少一个条目,否则headINFO我建议您使用headINFO.FirstOrDefault()

有关两者之间差异的更多信息,请点击此处

编辑: 添加了简单的例子

这是一个关于如何使用的快速示例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条目的值。

Edit2: 澄清了 First() 的用法并添加了干净的 foreach 示例

请记住,虽然First()并且FirstOrDefault()会为您提供单个项目,但它不能保证它将是第一个添加的项目。

此外,如果您只是想遍历所有项目,您可以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 回答