0

.csv ファイルを読み込んで、書式設定を行い、各行を列データに分割し、分離された列データの新しい配列を配列のリストに追加しようとしています。次に、リストをさまざまな方法で並べ替えたいと思います。現在、ユーザー名がアルファベット順に昇順になっています。

これは私がこれまでに試みたことです:

// create list for storing arrays
List<string[]> users;

string[] lineData;
string line;

// read in stremreader
System.IO.StreamReader file = new System.IO.StreamReader("dcpmc_whitelist.csv");
// loop through each line and remove any speech marks
while((line = file.ReadLine()) != null)
{
    // remove speech marks from each line
    line = line.Replace("\"", "");

    // split line into each column
    lineData = line.Split(';');

    // add each element of split array to the list of arrays
    users.Add(lineData);

}

IOrderedEnumerable<String[]> usersByUsername = users.OrderBy(user => user[1]);

Console.WriteLine(usersByUsername);

これにより、1 つのエラーが発生します。

割り当てられていないローカル変数「users」の使用

割り当てられていない変数だと言っている理由がわかりませんか?Visual Studio 2010 でプログラムを実行すると、リストが表示されないのはなぜですか?

4

3 に答える 3

5

オブジェクトは使用する前に作成する必要があるため、コンストラクターはオブジェクトを設定し、使用できるようにします。このエラーが発生する理由

このようなものを使用してください

List<string[]> users = new List<string[]>() ; 
于 2014-02-13T11:26:53.810 に答える
1

使用する :

List<string[]> users= new List<string[]>();

それ以外の :

List<string[]> users;
于 2014-02-13T11:27:35.390 に答える
1

Use of unassigned local variable 'users'変数を宣言したが、ブロックのusers前に変数に値を割り当てていないため、 Visual Studio でエラーが発生したため、 null になり、次の行を実行するとNullReferenceExceptionが発生します。while((line = file.ReadLine()) != null)users

users.Add(lineData);

これを変更する必要があります

List<string[]> users;

これに

List<string[]> users = new List<string[]>();
于 2014-02-13T11:39:12.937 に答える