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

在C#中用for循环和Linq替换指定数组元素的方法

数组指定索引值替换的C#实现方案

给定如下二维字符串数组:

var originalArray = new string[][] 
{
    new string[] {"Dog","0","A","eat"},
    new string[] {"cat","1","B","eat"}
};

需要按照规则替换指定索引位置的值,得到目标数组:

var newArray = new string[][] 
{
    new string[] {"Dog","big","house","eat"},
    new string[] {"cat","small","forest","eat"}
};

替换规则:

  • 数组子项的索引1位置:"0"替换为"big","1"替换为"small"
  • 数组子项的索引2位置:"A"替换为"house","B"替换为"forest"

一、使用for循环实现

通过遍历原数组的每一个子数组,针对需要替换的索引位置,基于预定义的映射字典完成值替换,同时复制子数组避免修改原数据。

// 定义替换映射字典
var index1Map = new Dictionary<string, string>
{
    {"0", "big"},
    {"1", "small"}
};

var index2Map = new Dictionary<string, string>
{
    {"A", "house"},
    {"B", "forest"}
};

var originalArray = new string[][] 
{
    new string[] {"Dog","0","A","eat"},
    new string[] {"cat","1","B","eat"}
};

var newArray = new string[originalArray.Length][];

for (int i = 0; i < originalArray.Length; i++)
{
    // 复制当前子数组,避免修改原数据
    var subArray = (string[])originalArray[i].Clone();
    
    // 替换索引1的值
    if (index1Map.ContainsKey(subArray[1]))
    {
        subArray[1] = index1Map[subArray[1]];
    }
    
    // 替换索引2的值
    if (index2Map.ContainsKey(subArray[2]))
    {
        subArray[2] = index2Map[subArray[2]];
    }
    
    newArray[i] = subArray;
}

二、使用LINQ实现

利用LINQ的Select方法遍历子数组,对每个子数组进行值替换,通过字典的TryGetValue方法安全处理映射,最终转换为数组格式。

using System.Linq;

// 定义替换映射字典
var index1Map = new Dictionary<string, string>
{
    {"0", "big"},
    {"1", "small"}
};

var index2Map = new Dictionary<string, string>
{
    {"A", "house"},
    {"B", "forest"}
};

var originalArray = new string[][] 
{
    new string[] {"Dog","0","A","eat"},
    new string[] {"cat","1","B","eat"}
};

var newArray = originalArray.Select(subArray => 
{
    // 复制子数组元素
    var newSubArray = subArray.ToArray();
    
    // 替换索引1的值
    newSubArray[1] = index1Map.TryGetValue(newSubArray[1], out var val1) ? val1 : newSubArray[1];
    
    // 替换索引2的值
    newSubArray[2] = index2Map.TryGetValue(newSubArray[2], out var val2) ? val2 : newSubArray[2];
    
    return newSubArray;
}).ToArray();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 12:25:25