如何将字符串拆分转字典逻辑改写为单行LINQ查询?
用单行LINQ将字符串转成Dictionary<string, string>
直接用Split结合LINQ的ToDictionary就能实现,一行代码搞定:
string columnHeaderToForeignKeys = "column1:Apple,Column2:Bannana,Column3:Apple"; var resultDict = columnHeaderToForeignKeys .Split(',') .Select(pair => pair.Split(':')) .ToDictionary(parts => parts[0], parts => parts[1]);
步骤拆解:
- 第一步
Split(','):把整个字符串按逗号分割成单个键值对(比如"column1:Apple") - 第二步
Select(pair => pair.Split(':')):将每个键值对按冒号分割成包含两个元素的数组,数组第0位是键,第1位是值 - 第三步
ToDictionary:直接从分割后的数组里提取键和值,生成字典
容错优化(可选)
如果担心字符串格式不规范(比如缺少冒号、多余空格),可以加过滤和去空格处理:
var resultDict = columnHeaderToForeignKeys .Split(',') .Select(pair => pair.Split(':')) .Where(parts => parts.Length == 2) // 只保留格式正确的键值对 .ToDictionary(parts => parts[0].Trim(), parts => parts[1].Trim()); // 去除键值首尾空格
内容的提问来源于stack exchange,提问作者Jase99
相关产品推荐
相关产品推荐

