如何使用 foreach C# 对列表中的项目进行排序

Ram*_*mbo 0 c# sorting foreach list

我需要使用 foreach 按升序对列表中的项目进行排序,所以我不知道如何做。到目前为止,这是我的代码:

namespace ListProject
{
    public struct FamilyMem
    {
        public string name;
        public int age;

        public FamilyMem(string name,int age)
        {
            this.name = name;
            this.age = age;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            FamilyMem Jack = new FamilyMem("Jack", 15);
            FamilyMem Tom = new FamilyMem("Tommy", 24);
            FamilyMem Felix = new FamilyMem("Felix", 26);
            FamilyMem Lukas = new FamilyMem("Lukas", 26);
            FamilyMem Austin = new FamilyMem("Austin", 54);
            FamilyMem Ben = new FamilyMem("Ben", 55);

            List<FamilyMem> gambleList = new List<FamilyMem>();

            gambleList.Add(Jack);
            gambleList.Add(Tom);
            gambleList.Add(Felix);
            gambleList.Add(Lukas);
            gambleList.Add(Austin);
            gambleList.Add(Ben);

            Console.WriteLine(gambleList.Count.ToString());


        }
    }
} 
Run Code Online (Sandbox Code Playgroud)

我还需要一段单独的代码,它允许我按字母顺序对名称进行排序。谢谢。

EJo*_*ica 5

当您使用 foreach 循环迭代集合时,您无法编辑集合,因此至少不可能做到这一点。但是,您可以使用 LINQ 或某些 for 循环。使用类似的东西:

gambleList = gambleList.OrderBy(item => item.name).ToList();
Run Code Online (Sandbox Code Playgroud)

顺便说一句,分配的原因是 OrderBy 操作(与方法不同Sort())不会就地对集合进行排序 - 它返回对已排序集合的引用。

您还可以使用标准的 for 循环或递归函数来实现插入排序等功能。