对包含List的对象进行排序,然后使用LINQ更新对象

本文关键字:对象 然后 更新 LINQ List 包含 排序 | 更新日期: 2023-09-27 18:29:02

我正在编写一个函数,使用列表中的属性对List进行排序。我需要使用列表AnimalList的属性AgeMyClass对象obj进行排序,并将排序后的列表分配回obj。在执行功能之后,obj应该用新的排序对象进行更新。我的列表值现在已经得到排序列表。我需要将其更新为目标

我尝试了很多种可能性,但无法将列表绑定到对象。

public void SortBlocks(MyClass obj)
{
    List<Animal> value = obj.AnimalList;
    value = value.OrderBy(val => val.Age).ToList();
}
public interface MyClass 
{
     List<Animal> AnimalList { get; set; }
}
public class Animal
{
    public string color{get;set;}
    public uint Age{get;set;}
}

提前感谢!

对包含List的对象进行排序,然后使用LINQ更新对象

您已经通过对动物进行排序生成了一个新的集合对象。调用SortBlocks后,要在obj中查看排序结果,需要将值分配回obj.AnimalList:

public static void SortBlocks(MyClass obj)
{
    List<Animal> value = obj.AnimalList;
    value = value.OrderBy(val => val.Age).ToList();
    obj.AnimalList = value;
}

编辑:顺便说一句,你可以做一个原地排序,比如:

public static void SortBlocks(MyClass obj)
{
    obj.AnimalList.Sort(new Comparison<Animal>((x, y) => x.Age.CompareTo(y.Age)));
}

试试这个:-

List<Animal> value = obj.AnimalList;
obj.AnimalList = value.OrderBy(x => x.Age).ToList();
相关文章: