public class Player
{
public string Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public bool IsPlaying { get; set; }
} List<Player> playerList = new List<Player>()
{
new Player() {Id = "1", Name = "姚明", Age = 41, IsPlaying = false},
new Player() {Id = "2", Name = "刘玉栋", Age = 50, IsPlaying = false},
new Player() {Id = "3", Name = "王治郅", Age = 44, IsPlaying = false},
new Player() {Id = "4", Name = "易建联", Age = 34, IsPlaying = true},
new Player() {Id = "5", Name = "万圣伟", Age = 27, IsPlaying = true},
};

1. linq 实现排序

如果想按照未退役在前,退役在后、年龄大在前,年龄小在后的顺序展示这 5 位运动员,可用下面两种的任一种实现:

playerList = playerList.OrderByDescending(p => p.IsPlaying).ThenByDescending(p => p.Age).ToList();

playerList = (from p in playerList orderby p.IsPlaying descending, p.Age descending select p).ToList();

2. First 和 FirstOrDefault

IEnumerable<Player> bidIdPlayers = playerList.Where(p => p.Age > 60);

Player playerA = bidIdPlayers.First(); // bidIdPlayers 为空的话报错,提示序列不包含任何元素
Player playerB = bidIdPlayers.FirstOrDefault(); // bidIdPlayers 为空的话不报错,playerB 值为 null string idA = bidIdPlayers.FirstOrDefault().Id; // bidIdPlayers 为空的话报错,提示未将对象引用设置到对象的实例
string idB = bidIdPlayers.FirstOrDefault()?.Id; // bidIdPlayers 为空不报错,idB 值为 null
var age = bidIdPlayers.FirstOrDefault()?.Age; // bidIdPlayers 为空不报错, age 值为 null

最新文章

  1. 通用PE工具箱 4.0精简优化版
  2. Beaglebone Back学习四(GPIO实验)
  3. Android Studio配置Dagger2 以及butterknife
  4. A Swift Tour(3) - Functions and Closures
  5. MessageFormat类别:快速格式化字符串
  6. Deadclock on calling async methond
  7. 博客已转移至 http://blog.yemou.net/
  8. 初学ASP.NET 知识点
  9. 【原创 Hadoop&amp;Spark 动手实践 6】Spark 编程实例与案例演示
  10. [android] 手机卫士手势滑动切换屏幕
  11. Java小故事(一)
  12. L1-059 敲笨钟 (20 分)
  13. vue中常用的指令
  14. 批处理最完整人性化教程(.bat文件语法)
  15. 移植最新Uboot到JZ2440开发板
  16. maven 发布打包部署 命令
  17. api.closeFrame
  18. elixir mac环境
  19. 【坚持】Selenium+Python学习记录 DAY10
  20. phpstorm 输入法中文不同步 phpstorm 输入法不跟随光标解决办法

热门文章

  1. VS Code 搭建合适的 markdown 文档编写环境
  2. CF1465-D. Grime Zoo
  3. 实战交付一套dubbo微服务到k8s集群(5)之使用Jenkins进行持续构建交付dubo服务的提供者
  4. K8S(14)监控实战-grafana出图_alert告警
  5. MySQL 多实例及其主从复制
  6. MySQL 误删用户故障解决方案
  7. C++ part6
  8. Install pyaudio on Ubuntu
  9. vue component :is
  10. auto switch HTTP protocol Chrome Extension