我想根据姓氏的字母顺序对包含 150 行徽章号码、姓氏、名字、地址等的文件进行排序。e

问题描述 投票:0回答:1

我有一个包含 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++)
    {
        [] 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

因此列表可以按member[0][1]、member[1][1]、member[2][1]等排序

c# arrays list sorting
1个回答
0
投票

类似的东西应该可以工作(除非你有带引号的普通 csv):

File.WriteAllLines
(
  ...,
  File.ReadAllLines(...)
    .Select(s => s.Split({','}))
    .OrderBy(x => x[2].ToLowerCase()),
  ...
)
© www.soinside.com 2019 - 2024. All rights reserved.