c# - 在字典中查找值>
问题描述
我有一个带有 int 键和 List 值的字典
我想知道键或值是否包含特定整数并获取它的相关键。
例子:
Dictionary<int, List<int>> removableStuff = new Dictionary<int, List<int>>();
removableStuff.Add(1, new List<int> {1});
removableStuff.Add(3, new List<int> {9,33,35});
removableStuff.Add(2, new List<int> {1,65,32,3});
我想找到数字 3。由于数字 3 可以作为键和值找到,因此输出将是:3、2。
解决方案
这应该会产生预期的结果:
var num = 3;
var keys = removableStuff.Where(i => i.Key.Equals(num) || i.Value.Any(num.Equals))
.Select(i => i.Key);
如果您不想处理 Enumerable,您可以选择.ToList()
在 之后调用。.Select()
i.Value.Any(num.Equals)
也可以简化为,但是当i.Value.Contains(num)
我使用 Linq 时,我也喜欢使用Any
这种东西。(只是个人喜好)
尽管如此,这是非常基本的 Linq,我相信您会在询问之前找到答案,如果您会看的话。
推荐阅读
- node.js - Jsonwebtoken 验证导致 NGINX 超时
- python-3.x - python concurrent.futures 跳过超时进程
- r - 如何将变量的名称及其结果插入 R 中的绘图中
- node.js - AWS S3 访问被本地主机拒绝,但在部署时工作
- php - 如何从xml中获取数据?
- c++ - 为什么可以通过构造函数将临时值分配给引用?
- html - 让网页占据 60% 并居中?
- android - 将值设置为进度后如何保存 SeekBar 拇指位置?
- python - 如何计算数据框中一行中非 NaN 列的数量?
- javascript - 对漂亮的 DND 做出反应 - 我得到“无法找到 id:1 的可拖动对象”