如何按字母顺序对我的姓名列表进行排序?

时间:2018-11-14 20:23:50

标签: c#

我想知道,如何在列表中按字母顺序对名称和肯定名称进行排序。

我不确定,但是我用谷歌搜索,我猜它只能按名称排序。

    public void FilterParticipants(List<string> players, PlayerContainer allPlayers)
    {
        for (int i = 0; i < allPlayers.Count; i++)
        {
            if (!players.Contains(allPlayers.FindName(i) + " " + allPlayers.FindSurname(i)))
            {
                players.Add(allPlayers.FindName(i) + " " + allPlayers.FindSurname(i));
            }
        }
        players.Sort();
    }

1 个答案:

答案 0 :(得分:2)

如果您要按姓氏和名称来对播放器名称进行排序,并且无法更改设计来传递List<Player>,那么这是一个解决方案。

请注意,在设计上稍作更改,因为通常最好返回一个新列表而不是修改输入列表。而且,方法名称有点误导。 “过滤器”表示您正在根据某些条件减少项目集,但是在这种情况下,我们添加项目(如果不存在),所以我将其重命名为GetCombinedParticipants

鉴于此,这是实现它的一种方法。请注意,此设计使用Substring来查找名称中的最后一个空格,该空格用作名字和姓氏之间的分隔符(因此假定姓氏中没有空格)。如果有,那么我不知道如何从List<string>识别它们,这是用单独的Player和{{1}创建一个FirstName类的另一个好理由}平民...

Surname