C# 调试System.FormatException
“索引(从零开始)必须大于或等于零且小于参数列表的大小。”C# 调试System.FormatException,c#,debugging,exception,runtime-error,C#,Debugging,Exception,Runtime Error,“索引(从零开始)必须大于或等于零且小于参数列表的大小。” (“指数为0(零),指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0 执行该行时: search.Filter = string.Format(filter,filterparams); 其中,在运行时,filter包含“(sAMAccountName={0})(sAMAcco
(“指数为0(零),指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0,指数为0 执行该行时:
search.Filter = string.Format(filter,filterparams);
其中,在运行时,filter
包含“(sAMAccountName={0})(sAMAccountName={1})”
和filterparams
是一个包含两个成员字符串“Testuser”和“Vertrieb”的字符串列表
错误消息到底想告诉我什么?错误表明格式字符串中的标记比参数列表中的标记多。String.Format的第二个参数是对象数组(来自MSDN):
StringList未隐式转换为对象数组,因此String.Format将StringList解释为一个参数-因此出现错误。错误表示格式字符串中的标记多于参数列表中的标记。String.Format的第二个参数是对象数组(来自MSDN):
StringList未隐式转换为对象数组,因此String.Format将StringList解释为一个参数-因此出现错误。使用
search.Filter=String.Format(Filter,filterparams.ToArray())
,或search.Filter=string.Format(Filter,filterparams[0],filterparams[1])代码>Thx,这很有效。第二个参数限制为两个参数-但在生产中,矿山可以使用两位数。使用search.Filter=string.Format(Filter,filterparams.ToArray())
,或search.Filter=string.Format(Filter,filterparams[0],filterparams[1])代码>Thx,这很有效。第二个参数限制为两个参数,但在生产矿井中可能会变成两位数。为了扩展这一点:过滤器数组的每一项都必须直接输入格式化函数。只需调用filterparams.ToArray()@Christian Sauer:谢谢您提供的额外信息。要扩展此功能,必须将筛选器数组的每个项直接馈送到format函数。只需调用filterparams.ToArray()@Christian Sauer:谢谢你提供的额外信息。
public static string Format(
string format,
params object[] args
)