我想在C#中创建一个未定义长度的对象数组,然后像这样在循环中填充数组...
string[] splitWords = message.Split(new Char[] { ' ' });
Word[] words = new Word[];
int wordcount = 0;
foreach (string word in splitWords)
{
if (word == "") continue;
words[wordcount] = new Word(word);
wordcount++;
}
Run Code Online (Sandbox Code Playgroud)
但是,我得到错误......"数组创建必须有数组大小或数组初始化程序"
我在foreach循环中做了很多逻辑,我为了简洁而遗漏了这些逻辑.
jas*_*onh 45
你想要做的是创造:
List<Word> words = new List<Word>();
Run Code Online (Sandbox Code Playgroud)
然后:
words.Add(new Word(word));
Run Code Online (Sandbox Code Playgroud)
最后,当你需要一个数组时完成循环:
words.ToArray();
Run Code Online (Sandbox Code Playgroud)
Jar*_*Par 10
如果您使用的是C#3.5,则可以执行以下操作.
var words = message
.Split(new char[]{' '})
.Where(x => x != "")
.Select(x => new Word(x))
.ToArray();
Run Code Online (Sandbox Code Playgroud)
您无法创建未定义长度的数组.这是您使用通用列表的地方.
List<Word> words = new List<Word>();
Run Code Online (Sandbox Code Playgroud)