尝试在 C# 中使用 IOrderedEnumerable 对列表进行排序



我正在尝试读取.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[]>();

相关内容

  • 没有找到相关文章

最新更新