我正在尝试读取.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);
这给出了一个错误:
使用未赋值的局部变量"用户"
我不明白为什么它说它是一个未赋值的变量?为什么在 Visual studios 2010 中运行程序时不显示该列表?
因为对象在使用之前需要创建, 构造函数设置对象,准备使用 为什么你会得到这个错误
使用这样的东西
List<string[]> users = new List<string[]>() ;
使用 :
List<string[]> users= new List<string[]>();
而不是:
List<string[]> users;
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[]>();