You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Dictionary的LINQ查询重构为单个Lambda表达式

实现方案

你要的单条LINQ方法链写法可以直接用First()扩展方法完成,无需拆分Where+Select+ToList的组合:

// 确定Key=1一定存在的场景,直接写
var targetValue = myd.First(c => c.Key == 1).Value;

// 如果要兼容Key不存在的场景,避免抛出异常可以用FirstOrDefault
var targetValue = myd.FirstOrDefault(c => c.Key == 1).Value ?? "不存在匹配值";

替换到你的代码中,原来的取值+输出逻辑可以直接压缩为一行:

Console.WriteLine($"Desired output: {myd.First(c => c.Key == 1).Value}");

补充说明

  • 如果你只是操作Dictionary类型,更推荐直接用字典自带的索引器myd[1]或者TryGetValue()方法,性能远高于LINQ枚举查找:前者是O(1)时间复杂度,后者是O(n)时间复杂度。
  • 示例中First()方法的参数本身就是Lambda表达式,整个方法链调用就是单条语句,符合你的要求。

内容的提问来源于stack exchange,提问作者BrandonM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:30:03