gpt4 book ai didi

c# - 如何使用其中一个变量对列表中的类进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 21:13:48 25 4
gpt4 key购买 nike

对于我们的练习(使用 Windows 窗体和类),我们被要求创建一个类列表(不同种类的动物,例如狗、猫、牛等)并使它们出现在按字母顺序排序的列表框中。为此,我们使用了一个名为 AnimalName 的变量,它是动物的名称。现在我想按 AnimalName 对这些类进行排序,但我该怎么做呢?这是代码:

List<NamedAnimal> animalist = new List<NamedAnimal>
{
new Bear("Angry Joe") { }, new Cat("Snow White") { }, new Chicken("Henifer Aniston") { }, new Cow("Lolita") { }, new Dog("Vigi the loon") { },
new Duck("Ronald Duck") { }, new Horse("Shadow") { }, new Kangaroo("Boxer") { }, new Moose("Mickey Moose") {}
};

private void AnimalForm_Load(object sender, EventArgs e)
{
foreach (NamedAnimal animal in animalist)
{
listBoxAnimal.Items.Add(animal.AnimalName);
}
}

我知道在 foreach 语句之后,我必须编写一行代码,从列表框中获取动物名称并按字母顺序显示它们。我还想编写一行代码,使用动物的名称按字母顺序存储列表中的类。 (愤怒的乔、拳击手等)。我怎么写呢?我试过类似的东西:

animalist.Sort(); 

在 foreach 语句之后,我得到了一个未处理的异常。

如何使用 AnimalName 按字母顺序对列表中的类进行排序???

最佳答案

您可以对 List<T> 进行排序使用 OrderBy OrderByDescending 方法,然后将排序列表设置为 DataSource 你的ListBox :

listBoxAnimal.DataSource= animalist.OrderBy(x => x.AnimalName).ToList();
listBoxAnimal.DisplayMember = "AnimalName"

也可以通过将像 AnimalName 这样的字段设置为 DisplayMember ListBox您告诉控件将您类(class)的该字段显示为项目文本。

关于c# - 如何使用其中一个变量对列表中的类进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35830755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com