索引(基于零)必须大于或等于零和更小

时间:2015-01-22 19:50:05

标签: c# string.format

错误:索引(从零开始)必须大于或等于零且小于参数列表的大小。

MVC app,试图将项目添加到我的下拉列表中,但标题中的错误仍然被抛出。我做错了什么?

 var maxLength = db.COMIS_tbl_VesselMaster.Max(x => x.Vessel_Name.Length);

foreach (table a in db.table)
{
    SelectListItem item = new SelectListItem();

    item.Text = string.Format("{0, -" + maxLength + "} => {1} - {2}", a.V + (a.I != null ? a.I : 0) + (a.G != null ? a.G : 0));
    item.Text = item.Text.Replace(" ", HttpUtility.HtmlDecode(" "));
    item.Value = a.VID.ToString();
    items.Add(item);
}

2 个答案:

答案 0 :(得分:0)

您将负maxLength放入字符串:

        item.Text = string.Format("{0, -" + maxLength + "} => {1} - {2}", a.V + (a.I != null ? a.I : 0) + (a.G != null ? a.G : 0));

我不确定你要做的是什么,但这是你错误的原因。

答案 1 :(得分:0)

你已经指定你将为string.Format提供3个参数,但你只传递了1.错误是你的标记需要介于0和(传递的参数数量为1)之间。 / p>

item.Text = string.Format("{0, -" + maxLength + "} => {1} - {2}", a.V + (a.I != null ? a.I : 0) + (a.G != null ? a.G : 0));

格式字符串:"{0, -" + maxLength + "} => {1} - {2}"

参数0:a.V + (a.I != null ? a.I : 0) + (a.G != null ? a.G : 0)

缺少参数1和参数。