总结C#删除字符串数组中空字符串的几种方法

 更新时间:2016年08月16日 10:52:03   投稿:daisy  
C#中要如何才能删除一个字符串数组中的空字符串呢?下面的文章会介绍多种方式来实现清除数组中的空字符串,以及在.net中将字符串数组中字符串为空的元素去除。

前言

随着微软对C#不断发展和更新,C#中对于数组操作的方式也变得越来越多样化。以往要实现过滤数组中的空字符串,都是需要实行循环的方式来排除和过滤。但C#3.0新增的lambda表达式就可以很方便实现这个功能,下面一起看看为大家整理的几种清除数组中的空字符串的方法,有需要的可以参考学习。

方式一:使用lambda表达式筛选过滤掉数组中空字符串

  /// <summary>
  /// 使用lambda表达式排除/过滤/清空/删除掉字符串数组中的空字符串
  /// </summary>
  /// <param name="args"></param>
  static void Main(string[] args)
  {
   string[] strArray = { "","111","","222","","333"};   
   Console.WriteLine("输出带有空字符串的数组:");
   foreach (string str in strArray)
   {
    Console.WriteLine(str);
   }
   Console.WriteLine("-------------------------------------------");
   //使用lambda表达式过滤掉空字符串
   strArray = strArray.Where(s=>!string.IsNullOrEmpty(s)).ToArray();
   Console.WriteLine("输出过滤掉空字符串的数组:");
   foreach (string str in strArray)
   {
    Console.WriteLine(str);
   }
   Console.Read();
  }

方式二:使用泛型集合List<string>的ForEach循环,过滤获取正确的字符串,重新添加到新字符串数组中

   string[] strArray = { "", "111", "", "222", "", "333" };
   Console.WriteLine("输出带有空字符串的数组:");
   foreach (string str in strArray)
   {
    Console.WriteLine(str);
   }
   Console.WriteLine("-------------------------------------------");

   /*
    *使用List泛型集合的ForEach方法循环获取非空空字符串
    *这里使用了匿名方法
    */      
   List<string> list = new List<string>();
   strArray.ToList().ForEach(
   (s) =>
   {
    if (!string.IsNullOrEmpty(s))
    {
     list.Add(s);
    }
   }
   );
   strArray = list.ToArray();

   Console.WriteLine("输出过滤掉空字符串的数组:");
   foreach (string str in strArray)
   {
    Console.WriteLine(str);
   }
   Console.Read();

方式三:使用传统循环方式来排除和删除字符串数组中的空字符串

   string[] strArray = { "", "111", "", "222", "", "333" };
   Console.WriteLine("输出带有空字符串的数组:");
   foreach (string str in strArray)
   {
    Console.WriteLine(str);
   }
   Console.WriteLine("-------------------------------------------");

   //使用循环排除和过滤掉空字符串    
   List<string> list = new List<string>();
   foreach (string s in strArray)
   {
    if (!string.IsNullOrEmpty(s))
    {
     list.Add(s);
    }
   }
      
   strArray = list.ToArray();

   Console.WriteLine("输出过滤掉空字符串的数组:");
   foreach (string str in strArray)
   {
    Console.WriteLine(str);
   }
   Console.Read();

上面三种方式的最终结果都是一样的,如下图

总结

以上就是关于C#删除字符串数组中空字符串的几种方法的全部内容,文章整理的很详细,相信会对大家使用C#处理字符串数组很有帮助。如果有疑问欢迎大家留言讨论,小编会尽快给大家回复。

相关文章

  • 实例详解C#实现http不同方法的请求

    实例详解C#实现http不同方法的请求

    本篇文章给大家分享了C#实现http不同方法的请求的相关知识点以及实例代码,有需要的朋友参考下。
    2018-07-07
  • C#找不到类型名"SqlConnection"的有效解决方法

    C#找不到类型名"SqlConnection"的有效解决方法

    最近在使用c#链接SqlServer的时候遇到了错误,通过查找相关资料终于解决了,所以下面这篇文章主要给大家介绍了关于C#找不到类型名"SqlConnection"的有效解决方法,需要的朋友可以参考下
    2023-02-02
  • C#加解密之AES算法的实现

    C#加解密之AES算法的实现

    一般我们来说呢,对于加密,我们分为可逆和不可逆。可逆加密又可分为对称加密(AES、DES等)和非对称加密(RSA),还有就是一些编码加密等(BASE64);不可逆的呢,大部分又都称为摘要算法(MD5、SHA)。本文将用C#实现AES算法,需要的可以参考一下
    2022-08-08
  • C#中对象状态模式教程示例

    C#中对象状态模式教程示例

    这篇文章主要为大家介绍了C#中对象状态模式的教程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • C# 设计模式系列教程-组合模式

    C# 设计模式系列教程-组合模式

    组合模式可以使客户端调用简单,它可以一致使用组合结构或是其中单个对象,简化了客户端代码。
    2016-06-06
  • C#实现坦克大战游戏

    C#实现坦克大战游戏

    这篇文章主要为大家详细介绍了C#实现坦克大战游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • C#基于Miniblink控件编写一个简易的浏览器

    C#基于Miniblink控件编写一个简易的浏览器

    miniblink是一款精简小巧的浏览器控件,基于chromium精简而成,是市面上最小巧的chromium内核控件没有之一,本文将结合C#和Miniblink编写一个简易的浏览器,感兴趣的可以了解下
    2024-01-01
  • C#处理文本文件TXT实例详解

    C#处理文本文件TXT实例详解

    这篇文章主要介绍了C#处理文本文件TXT的方法,以实例形式详细分析了txt文本文件的读取、修改及打印等功能的实现技巧,需要的朋友可以参考下
    2015-02-02
  • C#上位机与三菱PLC通讯的实现步骤(图文)

    C#上位机与三菱PLC通讯的实现步骤(图文)

    这篇文章主要介绍了C#上位机与三菱PLC通讯的实现步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • C#设计模式之Template模板方法模式实现ASP.NET自定义控件 密码强度检测功能

    C#设计模式之Template模板方法模式实现ASP.NET自定义控件 密码强度检测功能

    这篇文章主要介绍了C#设计模式之Template模板方法模式实现ASP.NET自定义控件 密码强度检测功能,简单介绍了模板方法模式的定义、原理及检测密码强度的相关使用技巧,需要的朋友可以参考下
    2017-09-09

最新评论