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
相关产品推荐
相关产品推荐

