C#中要如何才能删除一个字符串数组中的空字符串呢?随着微软对C#不断发展和更新,C#中对于数组操作的方式也变得越来越多样化。以往要实现过滤数组中的空字符串,都是需要实行循环的方式来排除和过滤。C#3.0新增的lambda表达式就可以很方便实现这个功能,下面介绍多种方式来实现清除数组中的空字符串,以及在.net中将字符串数组中字符串为空的元素去除。

方式一:使用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();

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

最新文章

  1. Exchange超级实用命令行
  2. 【bzoj1912】 Apio2010—patrol 巡逻
  3. Winform开发框架之介绍
  4. [分享] RT7LITE精简后无法封装解决办法
  5. sublime txt 设置在浏览器预览
  6. spring day01-go1
  7. astyle 使用说明
  8. Form_Form页面跳转的四种方式(open_form, call_form, new_form, fnd_function)详解(汇总)
  9. MySQL 字符串 转 int/double CAST与CONVERT 函数的用法
  10. SAX - Hello World
  11. c# 赋值后最后一项数据部分丢失
  12. Unreal Engine 4 创建Destructible Mesh(可破坏网格)
  13. OpenCV——运用于pixels war游戏
  14. 关于OC和Swift使用GIT创建项目
  15. [Redis源码阅读]redis持久化
  16. [LeetCode] Set Mismatch 设置不匹配
  17. TensorFlow 2.0 Alpha pip安装指令
  18. 解决Eclipse中无法查看Java源码
  19. git 命令积累
  20. python-----短信、电话告警

热门文章

  1. 状态压缩&#183;一(状态压缩DP)
  2. Docker配置daocloud加速器
  3. [转]C# NPOI 导入与导出Excel文档 兼容xlsx, xls
  4. java调用第三方的webservice应用实例【转载】
  5. 无责任Windows Azure SDK .NET开发入门(二):使用Azure AD 进行身份验证
  6. JS中那些让人头昏眼花的弯子
  7. Linux常用基本命令(split )
  8. HDU3715(二分+2-SAT)
  9. python-策略模式
  10. element-ui switch组件源码分析整理笔记(二)