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

C#中不使用for循环将路径变量字符串拆分存入Dictionary

无循环实现字符串拆分到Dictionary<string, string>

你可以借助LINQ来实现,全程不用显式for循环:

  1. 先把目标字符串按/分割成字符串数组;
  2. 用Enumerable.Range生成从0开始的索引序列,序列长度是数组长度的一半(因为每两个元素对应一组键值);
  3. 通过ToDictionary直接将偶数位索引的元素作为Key,下一个奇数位元素作为Value。

基础实现代码

string input = "value1/672/value2/32/value3/21413";
var parts = input.Split('/');
var keyValueDict = Enumerable.Range(0, parts.Length / 2)
                             .ToDictionary(
                                 idx => parts[2 * idx],
                                 idx => parts[2 * idx + 1]
                             );

处理边界情况(可选)

如果输入字符串分割后元素数量是奇数(比如多了一个无对应值的键),可以加个判断避免索引越界:

string input = "value1/672/value2/32/value3/21413/extra";
var parts = input.Split('/');
Dictionary<string, string> keyValueDict = new();

if (parts.Length % 2 == 0)
{
    keyValueDict = Enumerable.Range(0, parts.Length / 2)
                             .ToDictionary(
                                 idx => parts[2 * idx],
                                 idx => parts[2 * idx + 1]
                             );
}
else
{
    // 这里可以根据需求处理,比如抛出异常、忽略最后一个元素等
    throw new ArgumentException("输入字符串的键值对数量不匹配");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 10:43:08