错误:System.IndexOutOfRangeException:索引超出了数组的范围

时间:2014-04-08 14:45:36

标签: c# arrays visual-studio-2010

System.IndexOutOfRangeException:索引超出了数组的范围。在C:\ Documents and Settings \ Administrator \ Desktop \ WinServiceProject \ WinService.cs中的WinServiceProject.WinService.OnStart(String [] args):第515行

{                             string[] stringArray = row["Version"].ToString().Split('.');

        Line 515 -----> switch (stringArray[0] + "." + stringArray[1] + ".")
                        {
                            case "11.0.":
                                sqlServerVersion = "SQL Server 2012";
                                file.WriteLine("SQL Server 2012");
                                break;

                            case "10.50.":
                                sqlServerVersion = "SQL Server 2008 R2";
                                file.WriteLine("SQL Server 2008 R2");
                                break;

                            case "10.0.":
                                sqlServerVersion = "SQL Server 2008";
                                file.WriteLine("SQL Server 2008");
                                break;

                            case "9.00.":
                                sqlServerVersion = "SQL Server 2005";
                                file.WriteLine("SQL Server 2005");
                                break;
                        }
                    }`

如果有人能帮助我,请...谢谢。

1 个答案:

答案 0 :(得分:0)

您的stringArray包含的元素少于两个。这是您的问题,您需要确保它在switch statement.BTW之前至少包含两个元素,如果您只想追加{{ 1}}到最后,您不需要dot,只需使用String.Split方法:

Insert

或者只使用字符串连接string str = row["Version"].ToString(); str = str.Insert(str.Length, "."); switch(str) { ... } ;