微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#:如何根据字符串列表对对象列表进行排序

我有两个列表
List<String> l_lstNames = new List<String> { "A1","A3","A2","A4","A0" };

List<Test> l_lstStudents = new List<Test> 
                            { new Test { Age = 20,Name = "A0" },new Test { Age = 21,Name = "A1" },new Test { Age = 22,Name = "A2" },new Test { Age = 23,Name = "A3" },new Test { Age = 24,Name = "A4" },};

测试就是类

public class Test
    {
        public String Name;
        public Int32 Age;
    }

我需要根据l_lstNames对l_lst学生中的项进行排序.所以排序的列表会像,

List<Test> l_lstStudents = new List<Test> 
                        {  new Test { Age = 21,new Test { Age = 20,};

现在我正在用这样做.

喜欢

>创建一个新的测试对象列表.
>迭代l_lstNames的循环,并从l_lstStudent中获取Test对象,并将其添加到新创建的列表中.最后将新列表分配给l_lstStudent

请帮我以简单的方式(Linq或Lambda)

解决方法

尝试这个:
l_lstStudents = l_lstStudents.OrderBy(s => l_lstNames.IndexOf(s.Name)).ToList()

我觉得这个意思很清楚.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐