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)
我还需要一段单独的代码,它允许我按字母顺序对名称进行排序。谢谢。
当您使用 foreach 循环迭代集合时,您无法编辑集合,因此至少不可能做到这一点。但是,您可以使用 LINQ 或某些 for 循环。使用类似的东西:
gambleList = gambleList.OrderBy(item => item.name).ToList();
Run Code Online (Sandbox Code Playgroud)
顺便说一句,分配的原因是 OrderBy 操作(与方法不同Sort())不会就地对集合进行排序 - 它返回对已排序集合的引用。
您还可以使用标准的 for 循环或递归函数来实现插入排序等功能。