我有一个包含150行的文件列表,每行包含14个逗号分隔的字符串:徽章编号、姓氏、名字等.当我向列表添加新名称时,我希望按姓氏的字母顺序重新排列这些行.这就是我到目前为止所拥有的.

private void btnSort_Click(object sender, EventArgs e)
{
    List<string[]> member = new List<string[]>();
    string[] listofmembers = File.ReadAllLines("D:\\sirslist\\data.txt");
    for (int i = 0; i < listofmembers.Length; i++)
    {
        string[] item = listofmembers[i].Split();
        member.Add(item);
    }
}
 

到目前为止,我的代码创建了如下成员:

member[0][0] = badge1,last name1,address1,etc,
member[1][0] = badge2,last name2,address2,etc
member[2][0] = badge3,last name3,address3,etc

我想不出怎么才能让它看起来像

member[0][0] = badge number
member[0][1] = last name
member[0][2] = first name

所以列表可以按成员[0][1]、成员[1][1]、成员[2][1]等排序.

推荐答案

您忘了在.Split()中指定参数.要使用逗号分隔,您需要类似以下内容:

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

string[] members = File.ReadAllLines("D:\\sirslist\\data.txt");

for (int i = 0; i < members.Length; i++)
{
    string[] item = members[i].Split(','); // add the argument to .Split()
    member.Add(item);
}

然后,您可以使用以下内容对members列表进行排序:

List<string[]> orderedMembers = members
    .OrderBy(m => m[1])
    .ToList()

Csharp相关问答推荐

如何打印已添加到List的Linq值,而不是C#中的:System.Collections.Generic.List ' 1[System.Int32]?

在WPF.NET 6中使用C++/WinRT组件(但实际上是任何WinRT组件)

如何将字节数组转换为字符串并返回?

如何使用C#和Graph API从Azure Directory获取用户详细信息

在Linq中调用需要limit和offset的方法''''

CS0103 dlibdotnet和www.example.com facerect不在上下文中

在FilePath中搜索一个词,并根据First Match从左到右提取文件路径

如何在C#中使用正则表达式抓取用逗号分隔的两个单词?

C#-从基类更新子类

C#和ASP.NET核心标识:提高GetUserAsync调用的性能

如何在C#中将方法/线程启动传递给基本构造函数

N层解决方案上的依赖注入-删除样板

当使用Dapper映射DBNull时,我可以抛出异常吗?

如何防止Visual Studio断点以红色突出显示到整行?

在使用UserManager时,如何包含与其他实体的关系?

将FileStream的特定部分作为字节数组读取

我找不到ASP.NET Web应用程序(.NET框架).已 Select .NET框架项目和项模板以及此组件(&Q;)

如何从Entity Framework Core中填充ListIInterface

如何使用ODP.NET C#设置Oracle会话时间长度限制

无法使用直接URL通过PictureBox.ImageLocation加载图像