我有一个List<>我以前按对象上的一个字段排序。如果我在列表上执行Where(),我可以安全地假设Where的结果也将被排序吗?
// Sorted by salary, greatest to smallest.
List<Players> players = _playerRepo.GetAll().OrderByDescending(x => x.Salary).ToList();
// Is this list safe to assume that the players with smith as last name are sorted by salary as well?
List<Players> filteredPlayers = players.Where(x => x.LastName == "Smith").ToList();
答案 0 :(得分:3)
是。通常,LINQ查询保持元素的顺序。
提示:如果您想进一步过滤结果,请不要致电ToList
。如果可能,您应该在数据库上执行查询,而不是在客户端上执行查询。
答案 1 :(得分:2)
是的,Where
不会更改以前订购的列表的顺序,它只会过滤它。
此外,订购操作是稳定,因此相等的值将保持其原始顺序。