作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有两个类似的列表
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" },
};
Test
是类
public class Test
{
public String Name;
public Int32 Age;
}
我需要根据 l_lstNames
对 l_lstStudents
中的项目进行排序。所以排序后的列表就像,
List<Test> l_lstStudents = new List<Test>
{ new Test { Age = 21, Name = "A1" },
new Test { Age = 23, Name = "A3" },
new Test { Age = 22, Name = "A2" },
new Test { Age = 24, Name = "A4" },
new Test { Age = 20, Name = "A0" },
};
现在我正在使用 for
来执行此操作。
喜欢
创建一个新的 Test
对象列表。
迭代 l_lstNames
的循环并从 l_lstStudent
中获取 Test
对象并将其添加到新创建的列表中。最后将新列表分配给 l_lstStudent
请帮助我以简单的方式(Linq 或 Lambda)做到这一点
最佳答案
试试这个:
l_lstStudents = l_lstStudents.OrderBy(s => l_lstNames.IndexOf(s.Name)).ToList()
我认为这表达了非常明确的意图。
关于C# : How to sort a list of object based on a list of string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9633426/
我是一名优秀的程序员,十分优秀!