c# - 如何将包含逗号分隔字符串值的字典转换为键值对集合?

标签 c# linq

我有一本像这样的字典:

    Dictionary<string, string> myDict = new Dictionary<string, string>
    {
        { "key1", "value1,value2,value3" },
        { "key2", "value4,value5" }
    }

如何转换为具有以下性质的 KeyValuePairList:

    List<KeyValuePair<string, string>> myList = n List<KeyValuePair<string, string>>
    {
        { "key1", "value1" },
        { "key1", "value2" },
        { "key1", "value3" },
        { "key2", "value4" },
        { "key2", "value5" }
    }

很抱歉问题主题可能不清楚。

最佳答案

这个转换的关键是SelectMany方法:

var res = myDict
    .SelectMany(p => p.Value.Split(',').Select(s => new KeyValuePair<string, string>(p.Key, s)))
    .ToList();

关于c# - 如何将包含逗号分隔字符串值的字典转换为键值对集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40069986/

相关文章:

c# - 当应用程序是默认处理程序时,NLog 将日志文件写入不正确的目录

c# - 尝试使用 ASP.NET MVC 5 中的 MemoryStream 发送电子邮件时无法访问已关闭的流

c# - 通过 Linq 找到给定对象的 2 个邻居

c# - 如何 Linq 选择对象的多个属性?

c# - 干净的 linq 实现以按孙子过滤列表

c# - 修改linq以获取前5个元素

c# - 无法创建常量值。只有原始类型

c# - .NET Core 3 迁移的其他探测路径

c# - 无法在 SQLite Net Platform WinRT 中加载 DLL 'sqlite3'

c# - IQueryable<T> 给出的结果与 List<T> 不同