如何在c#中检索字典的第一行

本文关键字:一行 字典 检索 | 更新日期: 2023-09-27 18:05:19

如何从字典中检索第一行。我放了大约15张唱片。

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

如何在c#中检索字典的第一行

您可以使用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()的用法并添加clean 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
}

字典是无序的,因此无法检索插入的第一个键值对。

您可以通过调用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;
         }
          ......
    }