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

C#中向字符串数组列表添加字符串数组报错的原因与解决方案

问题分析与修复方案

咱先直接点出问题:你代码里的listOfStringArrays.Add({"hello", "world"});这行不符合C#的语法规则,这就是导致一堆编译错误的根源。

为啥会报这些看起来莫名其妙的语法错呢?因为C#里那种简化的{...}数组初始化器,只能在声明数组变量并直接赋值的时候用,比如string[] arr = {"hello", "world"};。但你把它直接丢给Add方法当参数,编译器根本没办法自动识别这是一个string[]类型的对象,它会把这串符号当成语法混乱的代码,所以才会抛出缺少)、;之类的错误。

修复起来很简单,只要给编译器明确的类型提示就行,有两种常用的写法:

写法一:显式指定数组类型

using System;
using System.Collections.Generic;
public class Test {
    static void Main() {
        List<string[]> listOfStringArrays = new List<string[]>();
        // 显式创建string[]实例
        listOfStringArrays.Add(new string[] {"hello", "world"});
    }
}

写法二:用类型推断简化代码(C# 3.0及以上版本支持)

如果你不想手动写string类型,也可以用new[]让编译器自动推断数组的类型(因为你的元素都是字符串,编译器会识别出这是string[]):

using System;
using System.Collections.Generic;
public class Test {
    static void Main() {
        List<string[]> listOfStringArrays = new List<string[]>();
        // 编译器自动推断数组类型为string[]
        listOfStringArrays.Add(new[] {"hello", "world"});
    }
}

不管用哪种写法,都能让编译器明白你要传递的是一个字符串数组,所有编译错误都会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 23:23:10