QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 1423|回复: 0

[C#/.NET] 检查集合是否为空

[复制链接]

等级头衔

积分成就    金币 : 2841
   泡泡 : 1516
   精华 : 6
   在线时间 : 1294 小时
   最后登录 : 2024-11-21

丰功伟绩

优秀达人突出贡献荣誉管理论坛元老

联系方式
发表于 2022-10-15 11:49:57 | 显示全部楼层 |阅读模式
一、概述
& ^2 }( y6 I: v; m8 Q+ M" J% q       当一个集合作为入参传入另外一个方法时,我们首先需要判空处理,以免在空集合上处理引发异常,判空处理的方式有多种,下面就来一一列举.+ Z2 O  S8 l7 L1 v! l
二、是否为 null* a# o# e& r5 D% B) {3 t' P# x
       如果一个集合没有实例化,那集合就是null,判null的常用以下几种方式:
+ P0 ?, j/ A7 d7 O/ v' `方式一:== null6 q$ T+ s- c# @. e  ^  ~
  1. class Program
  2.     {
  3.         static List<Student> stuList;
  4.         static void Main(string[] args)
  5.         {
  6.             if (stuList == null)
  7.             {
  8.                 Console.WriteLine("stuList is null");
  9.             }
  10.             Console.ReadKey();
  11.         }
  12.     }
  13.     public class Student
  14.     {
  15.         public string Name { get; set; }
  16.         public int Age { get; set; }
  17.     }
1.jpg
) X3 w# U6 p+ k% \" q. v! z5 [" @' ~' u方式二:is null
5 V$ |4 z8 J4 \  F
  1. if (stuList is null)
三、是否为空0 I  i: L/ a5 h" r7 M% S
       在上面我们先判断了集合不为null以后,如果还需要检查集合是否有元素,也是有多种方式可以实现:
; D" N) ]. m" k4 n方式一:stuList.Count == 0# V2 a6 f6 C, t
  1. if (stuList.Count == 0)
  2.             {
  3.                 Console.WriteLine("stuList is empty");
  4.             }
2.jpg 0 n6 t" e1 ]) y8 I
方式二:!stuList.Any()   //     确定序列是否包含任何元素。
0 w$ E  `! s: c! O- Q9 C// 返回结果:! u8 v" Z) D. x
// true 如果源序列中不包含任何元素,则否则为 false。
( M; D1 f$ w+ C. w
  1. if (!stuList.Any())
  2.             {
  3.                 Console.WriteLine("stuList is empty");
  4.             }
      那如果我既想检查他是否为null又想检查是否为null,有没有简洁点的语法呢?这时候我们就可以用 ?. 来操作了。, t/ h9 @, q# G! j; X% V
实例如下:
  1. class Program
  2.     {
  3.         static List<Student> stuList = new List<Student>();
  4.         static void Main(string[] args)
  5.         {
  6.             //if (stuList is null)
  7.             //{
  8.             //    Console.WriteLine("stuList is null");
  9.             //    throw new Exception("stuList is null");
  10.             //}
  11.             //if (!stuList.Any())
  12.             //{
  13.             //    Console.WriteLine("stuList is empty");
  14.             //}
  15.             stuList.Add(new Student() { Name = "zls",Age = 25});
  16.             if (stuList?.Count != 0)
  17.             {
  18.                 Console.WriteLine("StuList is neither null nor empty");
  19.             }
  20.             Console.ReadKey();
  21.         }
  22.     }
  23.     public class Student
  24.     {
  25.         public string Name { get; set; }
  26.         public int Age { get; set; }
  27.     }
3.jpg 9 S0 I: q, W+ W4 I/ O
       这样就可以保证stuList为null的时候获取集合的数量也不会引发异常。
" k( i; s& \, g. O: I; O7 @5 F3 N
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|paopaomj.COM ( 渝ICP备18007172号|渝公网安备50010502503914号 )

GMT+8, 2024-11-21 18:12

Powered by paopaomj X3.5 © 2016-2025 sitemap

快速回复 返回顶部 返回列表