如何使用lambda表达式来选择特定项?

use*_*876 1 .net c# lambda

我只是学习lambda表达式,我想使用lambda表达式来选择任何特定的项目.在这里,我想选择一个key = 1的人,以便selectedOne ="sanjay"

    var people = new Dictionary<int, string>();
    people.Add(1, "sanjay");
    people.Add(2, "roshan");
    people.Add(3, "neejesh");
    people.Add(4, "deep");   
    var selectedOne = people.Select(x => x.Key == 1);
Run Code Online (Sandbox Code Playgroud)

我应该如何构建我的lambda查询?

谢谢!

小智 8

Dictionary是工具IEnumerableKeyValuePair包含KeyValue财产:

var selectedOne = people.First(x => x.Key == 1).Value;
Run Code Online (Sandbox Code Playgroud)

你使用错误的LINQ方法.Select用于投影一些值(将一个值转换为另一个值).您需要过滤(通过指定键搜索).

但是......使用LINQ来选择字典键效率不高.更好的是:

var selectedOne = people[1];
Run Code Online (Sandbox Code Playgroud)

它是O(1)对O(n)的摊销 - 巨大差异.