首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从查询c#获得有限数量的输出

如何从查询c#获得有限数量的输出
EN

Stack Overflow用户
提问于 2018-06-04 13:40:12
回答 3查看 93关注 0票数 3

我只需要获取查询的第一个值。我该怎么做呢?

代码语言:javascript
复制
Dictionary<int, string> dict = new Dictionary<int, string>();

dict.Add(1, "Jack");
dict.Add(2, "Peter");
dict.Add(3, "Chris");
dict.Add(4, "Peter");

var keys = from entry in dict where entry.Value == "Peter" select entry.Key limit 1;

如果我使用limit,我会得到一个错误。那么,限制输出的其他方法是什么,或者如何从查询中单独获得第一个结果呢?

错误CS0103名称'limit‘在当前上下文

中不存在

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-04 13:49:38

你也可以试试这个语法...

代码语言:javascript
复制
var key = dict.FirstOrDefault(v => v.Value == "Peter").Key;

编辑:添加代码以便于理解/复制-粘贴...Rextester - http://rextester.com/AIAKRZ95654

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace Rextester
{
    public class Program
    {
        public static void Main(string[] args)
        {

            Dictionary<int, string> dict = new Dictionary<int, string>();

            dict.Add(1, "Jack");
            dict.Add(2, "Peter");
            dict.Add(3, "Chris");
            dict.Add(4, "Peter");

            var key = dict.FirstOrDefault(v => v.Value == "Peter").Key;

            Console.WriteLine(key);
        }
    }
}

更新:请注意,当使用FirstOrDefault()关键字时,?.key不是必需的,最坏情况下将返回0。使用First()时需要?.key。由于这个困惑,Flater投票否决了这个答案,并从下面的评论区删除了他的评论。(他可能应该承认并提到这个因素,以便让其他程序员对First()FirstOrDefault()之间的这种细微差别保持警惕。)

票数 2
EN

Stack Overflow用户

发布于 2018-06-04 13:45:28

当字典中可以没有项目时,请使用First或FirstOrDefault:

代码语言:javascript
复制
var keys = (from entry in dict where entry.Value == "Peter" select entry.Key).FirstOrDefault();
票数 1
EN

Stack Overflow用户

发布于 2018-06-04 15:50:58

集合有四个方法,它们都返回集合的一项:

First(condition)

为了得到满足条件的第一个项,如果没有这样的项,此方法将抛出异常。

FirstOrDefault(condition)

为了获取满足条件的第一个项,如果没有这样的项,此方法将返回null。

Single(condition)

用于获取满足条件的唯一项。如果满足条件的项数大于或小于1,则此方法引发异常。

SingleOrDefault(condition)

用于获取满足条件的唯一项。如果满足条件的项数大于1,则此方法引发异常。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50673982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档