0

我試圖讀取一個.csv文件,做一些格式化,將每一行分割成它的列數據並將新的分離列數據數組添加到數組列表中。然後我想用不同的方式排列列表。目前僅通過用戶名按字母順序升序。嘗試使用C#中的IOrderedEnumerable命令列表

這是我迄今爲止嘗試:

// 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); 

這給了一個錯誤:

Use of unassigned local variable 'users'

我不明白爲什麼它說這是一個未賦值的變量?爲什麼當我在Visual Studio 2010中運行程序時,列表不顯示?

回答

5

因爲對象需要在使用前要創建,構造函數設置的對象,就可以使用這就是你得到這個錯誤

使用這樣的事情

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

用途:

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

List<string[]> users; 
1

的Visual Studio給你Use of unassigned local variable 'users'錯誤,因爲你聲明users可變的,但你以前while((line = file.ReadLine()) != null)塊從未分配給它的任何值,所以users將是無效和執行這條線時,你會得到一個NullReferenceException

users.Add(lineData); 

你要改變這種

List<string[]> users; 

這個

List<string[]> users = new List<string[]>(); 
相關問題