按年龄排序 c# 中的列表类
本文关键字:列表 排序 | 更新日期: 2023-09-27 18:30:57
我是初学者,我想创建一个打印的实现控制台的所有用户信息,按年龄排序。我尝试使用 Linq,但没有成功。这是代码库:
class User
{
public String name;
public String surname;
public int age;
}
interface UsersConsumer { public void consume(List<Users> collection); }
这是我试图在界面中执行的操作:
List<User> SortedUserList =
collection.OrderByDescending(collection => collection.age).ToList();
您需要在 lambda 表达式中使用不同的变量名称,例如:
List<User> SortedUserList = collection.OrderByDescending(row => row.age).ToList();
否则,您最终会收到如下错误:
不能在此作用域中声明名为"集合"的局部变量 因为它会给"收藏"赋予不同的含义,即 已在"父级或当前"范围内用于表示其他内容
编辑:刚刚注意到一件事:
这是我试图在界面中执行的操作:
你不能在你的界面中有实现。接口更像是一个契约,你必须在一个类中实现你的接口,然后把实现放进去:
public class SomeClass : UsersConsumer
{
public void consume(List<User> collection)
{
List<User> SortedUserList = collection.OrderByDescending(row => row.age).ToList();
}
}
请确保遵循 .Net 命名约定。
您无法排序,因为程序不知道如何对其进行排序。只是写class User : IComparable<User>
现在程序知道该用户可以与另一个用户进行比较。现在写如何:
public int CompareTo(User u)
{
return age.CompareTo(u.age);
}
现在程序知道,您可以按年龄对用户进行排序。所以你可以collection.Sort()
对它们进行排序并编写它们:-)