我有具有不同值的对象列表,包括整数,双精度,字符串。 在这种情况下,我想按“名称”对对象列表进行排序。 我是为int完成的,但是不能通过字符串完成。
、、、、、、、、、、、、、、、、、、、、、、、、、、 、、、、、、、、、、、、、、、、、、、、、、、、、、、 、、、、、、、、、、、、、、、、、、、、、、、、、、、 、、、、、
public void CreateMammal() // obj creating method
{
Console.WriteLine("Podaj Imie: ");
name = Console.ReadLine();
Console.WriteLine("Podaj Wiek: ");
age = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Podaj Wagę: ");
weigth = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Podaj Kolor Futra: ");
furColour = Console.ReadLine();
ToString();
}
.
.
.
List<Animal> animals = new List<Animal>(); // list declaration
.
.
.
Mammal mammal = new Mammal();
mammal.CreateMammal();
Console.WriteLine("\n\nTwoj ssak:\n" +
mammal.ToString());
animals.Add(mammal);
.
.
.
//animals.Sort((x, y) => x."name" - y."name"); // algorytm sortowania
//printAnimals(animals);
animals.Sort(); // here we go with problem
foreach (string value in animals)
{
Console.WriteLine(value);
}
.
.
.
public static void printAnimals(List<Animal> animals)
{
foreach (var animal in animals)
{
Console.WriteLine(animal.ToString());
}
}
答案 0 :(得分:0)
好吧,您可以使用Linq OrderBy()
来按name
属性(在System.Linq
名称空间下)进行排序
var orderedAnimals = animals.OrderBy(x => x.name).ToList();