【发布时间】:2016-11-30 09:57:46
【问题描述】:
当尝试使用数组作为 string.Format() 方法的参数时,我收到以下错误:
FormatException:索引(从零开始)必须大于或等于零且小于参数列表的大小。
代码如下:
place = new int[] { 1, 2, 3, 4};
infoText.text = string.Format("Player1: {0} \n Player2: {1} \n Player3: {2} \n Player4: {3}", place);
Array 包含四个值,String.Format() 中的参数也相同。
是什么导致了这个错误?
(infoText.text 只是一个普通的字符串对象)
【问题讨论】:
-
您传递的是
int[]而不是string[] -
可能类似于
string.Format("Player1: {0} \n Player2: {1} \n Player3: {2} \n Player4: {3}", place[0], place[1], place[2], place[3]);它在传递与字符串中每个 {} 相关的对象时起作用 -
只是为了记录,而不是使用 string.format,您可以更动态地创建字符串,而无需硬编码播放器的数量,例如:
infoText.text = string.Join("\n", place.Select((p,i) => $"Player{i+1}: {p}")); -
@Me.Name 看起来真不错。我会试试的。谢谢!
标签: c# .net arrays string string-formatting