【发布时间】:2015-06-26 19:19:11
【问题描述】:
所以我有一个有名字和姓氏的学生列表。如何以给定的方式使用 LINQ 查询过滤它们:他们的名字按字母顺序排在姓氏之前?
我尝试了一些类似的东西
var newStudents =
from s in students
where s.FirstName < s.LastName
select s;
我在这里面临的问题是无法以这种方式比较字符串。
学生还有一个包含他们成绩的 int 列表,以及另一个查询。我需要提取所有成绩为 2 的学生出现两次。
例如,我需要选择成绩为{ 2, 3, 4, 5, 2 } 的学生,但忽略成绩为{ 2, 3, 4, 5, 6 } 的学生。
【问题讨论】:
-
我建议查看 LINQ 的
.OrderBy和.ThenBy另外,这是一篇关于 how to sort data 的 MSDN 文章 -
另外,您的问题几乎是两个独立的问题。我建议删除第二个问题(关于成绩)并在需要时单独询问。它真的与按名称排序然后按另一个名称排序没有任何关系。
-
对于字符串问题,您可以使用 String.CompareTo() 对字符串排序很有用。 msdn on CompareTo() 如果您可以包含更多围绕您如何存储他们的成绩的代码,那将会很有帮助。
-
如果您解决了问题,请将其发布为作为答案。不要编辑您的问题。
-
@Darkbound 作为一个单独的问题提出。