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

C#中修改字典值数组内指定元素的方法

解决Dictionary<int, string[]>中数组元素修改的问题

这个问题我之前也碰到过,先说说你原来的代码为什么会报错:

dict[0].ElementAt(0) = "Something Different";

ElementAt(0)是LINQ方法,它返回的是数组对应位置元素的值副本,而不是指向该元素的可修改引用。所以你没法直接给这个返回值赋值,编译器自然会提示“左侧不是变量、属性或索引器”。

正确的实现方式

因为dict[0]返回的是string[]数组的引用(数组属于引用类型),所以你可以直接用数组的索引器来修改指定位置的元素,代码非常简洁:

dict[0][0] = "Something Different";

完整示例代码

给你一个完整的测试例子,方便你理解:

// 初始化字典
var dict = new Dictionary<int, string[]>
{
    { 0, new string[] { "Original Value", "Second Element" } },
    { 1, new string[] { "Another Array", "Another Element" } }
};

// 修改索引0的数组中第0个元素
dict[0][0] = "Something Different";

// 验证结果
Console.WriteLine(dict[0][0]); // 输出: Something Different
Console.WriteLine(dict[0][1]); // 输出: Second Element(其他元素保持不变)

补充注意事项

  • 要确保你要修改的key(比如示例里的0)确实存在于字典中,否则会抛出KeyNotFoundException。如果不确定key是否存在,可以先用dict.TryGetValue(0, out var array)安全获取数组引用后再修改。
  • 同时要保证数组的索引(比如示例里的0)在数组的有效范围内,不然会抛出IndexOutOfRangeException。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:08:48