2

私は現在、データを配列に格納する作業を行っています。プログラムはテキストファイルから情報を取得し、結果を製品名でフォーマットします。問題は、テキストの開始行にnumber(int)以外が見つかった場合、ファイルが壊れることです。具体的にはproductID = Convert.ToInt16(storeData[0]);。テキストファイルの最初の文字が整数以外の場合、どうすればプログラムの中断を回避できますか?

テキストファイルでの情報の表示:ProductID、Month、Sales

1 5 20.00

コード

string[] productName = new string[100];
                string arrayLine;
                int[] count = new int[100];
                int productID = 0;
                double individualSales = 0;
                double[] totalSales = new double[100];
                double[] totalAverage = new double[100];

                productName[1] = "Cookies";
                productName[2] = "Cake";
                productName[3] = "Bread";
                productName[4] = "Soda";
                productName[5] = "Soup";
                productName[99] = "Other";                                      

                while ((arrayLine = infile.ReadLine()) != null)
                {


                    string[] storeData = arrayLine.Split(' ');

                    productID = Convert.ToInt16(storeData[0]);
                    individualSales = Convert.ToDouble(storeData[2]);

                    if (stateName[productID] != null)
                    {
                        count[productID] += 1;
                        totalSales[stateID] += individualSales;
                    }
                    else
                    {
                        count[99] += 1;
                        totalSales[99] += individualSales;
                    }


                }
                infile.Close();
4

3 に答える 3

3
if (!Int16.TryParse(storeData[0], out productID))
   continue;//or do something else

Int16.TryParse

Gromerが述べたように、私はむしろ使用したいと思いますint.TryParse(実際にはInt32.TryParse)...

于 2012-09-21T15:51:58.897 に答える
1

次のように置き換えproductID = Convert.ToInt16(storeData[0]);てみてください:

if (Int16.TryParse(storeData[0], out productID))
{
     //do somthing
}
于 2012-09-21T15:53:27.750 に答える
0

TryParseはあなたを助けることができます:

if(Int16.TryParse(storeData[0], out productId))
{
    //do stuff
}
else
{
    //wasn't valid
}
于 2012-09-21T15:55:10.697 に答える