C#如何按字符串值对对象字符串排序

时间:2019-05-09 19:35:51

标签: c# list sorting

我有具有不同值的对象列表,包括整数,双精度,字符串。 在这种情况下,我想按“名称”对对象列表进行排序。 我是为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());
        }
    }

1 个答案:

答案 0 :(得分:0)

好吧,您可以使用Linq OrderBy()来按name属性(在System.Linq名称空间下)进行排序

var orderedAnimals = animals.OrderBy(x => x.name).ToList();