在我的应用程序中构建连接字符串时,我遇到了一些非常奇怪的异常。
string basis = "Data Source={0};Initial Catalog={1};Persist Security Info={2};User ID={3};Password={4}";
List<string> info1 = new List<string>(){ "SQLSRV", "TEST", "True", "user1", "pass1" };
string[] info2 = new string[] { "SQLSRV", "TEST", "True", "user1", "pass1" };
// throws exception
Console.WriteLine(String.Format(basis, info1));
// works fine
Console.WriteLine(String.Format(basis, info2));
错误:
“mscorlib.dll”中发生了未处理的“System.FormatException”类型异常
更多信息: 索引(从零开始)必须大于或等于零,并且小于参数列表的大小。
我的问题是:List 的索引出了什么问题?
List<string>
没有在Main
之外构建。 如果知道这一点,那么最简单的答案是使用字符串数组。 - Fabjan.ToArray()
就足够了。 - FabjanList(T).IndexOf
和Array.IndexOf(T)
方法的存在,会误导未来的读者。 - Tim Schmelter