关于asp.net:如何从C#中的字典中检索第一行?

How to retrieve first row from dictionary in C#?

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

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


您可以使用headinfo.first(),但是除非您知道headINFO中总是至少有一个条目,否则我建议您使用headinfo.firstordefault()。

更多关于这两者之间差异的信息。

编辑:添加简单示例

下面是一个关于如何使用FirstOrDefault()的快速示例

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

如果要打印多个项目,可以使用take(x)。在本例中,我们将遍历三个字典项,但您可以轻松地修改数字以获取更多项。

1
2
3
4
5
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)

1
2
3
4
5
6
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扩展方法:

1
var firstHead = headINFO.First();

或者,如果您希望更安全,如果字典为空,FirstOrDefault方法将返回null

1
var firstHead = headINFO.FirstOrDefault();

如果要循环查找字典中的所有项,请尝试以下操作:

1
2
3
4
foreach(var head in headINFO)
{
    ...
}


试试这个代码。

1
headINFO.FirstOrDefault();

试试这个:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    int c=0;

    foreach(var item in myDictionary)
    {
         c++;
         if(c==1)
         {
             myFirstVar = item.Value;
         }
         else if(c==2)
         {
             mySecondVar = item.Value;
         }
          ......
    }