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

如何用LINQ点语法获取字典与列表的键值对集合?

用LINQ点语法实现键值配对集合

当然可以做到,你只需要使用SelectMany的重载版本,它允许你在展开集合的同时,将原字典的键和每个值元素组合起来。

首先是你的原字典定义:

Dictionary<string, List<string>> test = new()
{
    { "animal", ["cat", "dog"] },
    { "fruit", ["banana", "apple"] }
};

实现需求的LINQ代码如下:

var pairedResult = test.SelectMany(
    kvp => kvp.Value,
    (kvp, value) => (kvp.Key, value)
);

这段代码逻辑很清晰:

  • 第一个lambda表达式kvp => kvp.Value指定要展开的集合(即每个字典项对应的字符串列表)
  • 第二个lambda表达式(kvp, value) => (kvp.Key, value)负责将字典项的键和列表中的每个值组合成值元组

执行后,pairedResult的内容就是你想要的形式:[("animal", "cat"), ("animal", "dog"), ("fruit", "banana"), ("fruit", "apple")]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 09:18:15