我有一份清单private List<Team> allTeams = new List<Team>() ;
我列表中的每个小组都有一个字段private double fitness ;
有人可以向我解释一下OrderBy<>
和Sort
的工作原理以及如何使用它们有效地按每个allTeams
排序我的列表fitness
吗?
答案 0 :(得分:3)
将fitness
public
或internal
属性设为Fitness
。
然后使用:
var ordered = allTeams.OrderBy(x => x.Fitness).ToList();
答案 1 :(得分:1)
如果确实不希望公开fitness
,您可以:
Team
类{/ 1}}中实现 内的自定义IComparer<Team>
,public
使用其对私有fitness
字段的访问权限进行比较两个团队的fitness
。Enumerable.OrderBy
中使用此比较器,例如var sortedTeams = allTeams.OrderBy(t => t, new Team.FitnessComparer());
或comparer overload of List.Sort
就地排序,例如
allTeams.Sort(new Team.FitnessComparer());
答案 2 :(得分:0)
答案 3 :(得分:0)
如果您的健身属性是公共财产,您可以这样做:
var ordered = allTeams.OrderBy(t => t.Fitness);
但是,对于私有字段,您无法执行此操作。