C# 尝试在C中使用IOrderedEnumerable对列表排序
我试图读入一个.csv文件,进行一些格式化,将每一行拆分为其列数据,并将新的分离列数据数组添加到数组列表中。然后我想以不同的方式排列列表。目前仅按用户名按字母顺序递增 这就是我迄今为止所做的尝试:C# 尝试在C中使用IOrderedEnumerable对列表排序,c#,visual-studio-2010,sorting,console-application,unassigned-variable,C#,Visual Studio 2010,Sorting,Console Application,Unassigned Variable,我试图读入一个.csv文件,进行一些格式化,将每一行拆分为其列数据,并将新的分离列数据数组添加到数组列表中。然后我想以不同的方式排列列表。目前仅按用户名按字母顺序递增 这就是我迄今为止所做的尝试: // create list for storing arrays List<string[]> users; string[] lineData; string line; // read in stremreader System.IO.StreamReader file = ne
// 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);
这给出了一个错误:
未分配局部变量“users”的使用
我不明白为什么它说它是一个未赋值的变量?在Visual Studio 2010中运行程序时,为什么列表不显示?因为需要在使用对象之前创建对象,构造函数会设置对象,以备使用。这就是为什么会出现此错误 用这样的东西
List<string[]> users = new List<string[]>() ;
使用:
而不是:
List<string[]> users;
Visual Studio允许您使用未分配的局部变量“users”error,因为您声明了users变量,但在whileline=file.ReadLine!=空块,因此用户将为空,执行此行时您将得到:
users.Add(lineData);
你必须改变这个
List<string[]> users;
对此
List<string[]> users = new List<string[]>();
List<string[]> users = new List<string[]>();