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();

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

使用C#删除一个字符串数组中的空字符串的更多相关文章

  1. C#中如何排除/过滤/清空/删除掉字符串数组中的空字符串

    C#中要如何才能删除一个字符串数组中的空字符串呢?随着微软对C#不断发展和更新,C#中对于数组操作的方式也变得越来越多样化.以往要实现过滤数组中的空字符串,都是需要实行循环的方式来排除和过滤.C#3. ...

  2. 07.C#中如何排除/过滤/清空/删除掉字符串数组中的空字符串

    方式一:使用lambda表达式筛选过滤掉数组中空字符串         1 /// <summary> /// 使用lambda表达式排除/过滤/清空/删除掉字符串数组中的空字符串 /// ...

  3. C# 使用lambda表达式过滤掉数组中的空字符串

    使用lambda表达式过滤掉数组中的空字符串    KeyWord = KeyWord.Where(S => !string.IsNullOrEmpty(S)).ToArray();

  4. 字符串数组 输入3个字符串,要求按由小到大的字母顺序输出; 输入n个学生的姓名和学号到字符串数组中,在输入一个姓名,如果班级有该生则返回其信息,否则返回本班无此人

    输入3个字符串,要求按由小到大的字母顺序输出 如 输入franch england china,输出结果是china england franch 三个数排序输出,比较三个数的大小怎么做? a=18 ...

  5. LeetCode第十四题-字符串数组中最长的共同前缀

    Longest Common Prefix 问题简介: 编写一个函数来查找字符串数组中最长的公共前缀字符串,如果没有公共前缀,则返回空字符串"" 举例: 1: 输入: [“xwq” ...

  6. 014 Longest Common Prefix 查找字符串数组中最长的公共前缀字符串

    编写一个函数来查找字符串数组中最长的公共前缀字符串. 详见:https://leetcode.com/problems/longest-common-prefix/description/ 实现语言: ...

  7. C#中使用IndexOf()判断字符串在字符串数组中第一次出现的索引位置

    ] {"}; "; //判断字符串的前几位在另一个字符串数组中第一次出现的索引位置 index = Array.IndexOf(s, s1.Substring(, ));

  8. c语言经典算法——查找一个整数数组中第二大数

    题目: 实现一个函数,查找一个整数数组中第二大数. 算法思想: 设置两个变量max1和max2,用来保存最大数和第二大数,然后将数组剩余的数依次与这两个数比较,如果这个数a比max1大,则先将max1 ...

  9. 软件工程结对开发——返回一个整数数组中最大子数组的和(JAVA)

    题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为 ...

随机推荐

  1. Spring 环境与profile(二)——Properties with Spring

    1. 简述 Spring profile用例,分3个场景(Test, Dev, Prod)相对Spring 环境与profile(一)——超简用例多了根据具体的profile获取对应的Properti ...

  2. python的Web框架,Django模板标签及模板的继承

    模板标签 在传递数据的时候,会有大量的数据展示在浏览器上,而数据会是动态变化的,在html的编写中,数据也是需要动态的,而不能是写死的,如果动态展示呢. 给定的例子数据 views传递数据给html ...

  3. PBN旁切转弯保护区组图

    旁切转弯是PBN(Performance Based Navigation基于性能导航)中使用频率最高的一种飞行方式,旁切转弯保护区支持最大120°的转弯. 旁切转弯保护区叠加图: 旁切转弯保护区分解 ...

  4. ASP.NET MVC验证码演示(Ver2)

    前一版本<ASP.NET MVC验证码演示>http://www.cnblogs.com/insus/p/3622116.html,Insus.NET还是使用了Generic handle ...

  5. windows下使用python操作redis(Visual Studio Code)

    1.编辑工具: Visual Studio Code(windows环境) 2.redis服务器:这里用了远程连接,需要配置redis.conf. (1)注释 #bind 127.0.0.1 (2)设 ...

  6. [日常] Go语言圣经-Deferred函数

    1.只需要在调用普通函数或方法前加上关键字defer,就完成了defer所需要的语法.当defer语句被执行时,跟在defer后面的函数会被延迟执行.直到包含该defer语句的函数执行完毕时,defe ...

  7. Core Foundation 官方文档翻译

      Core Foundation框架中常用的隐含类型: 使用这些隐含类型时需要自己初始化,自己去释放内存.所以需要记住,在初始化的同时在相应位置释放.以防出现内存问题.   1.CFStringRe ...

  8. 面向对象设计模式_享元模式(Flyweight Pattern)解读

    场景:程序需要不断创建大量相似的细粒度对象,会造成严重的内存负载.我们可以选择享元模式解决该问题. 享元抽象:Flyweight 描述享元的抽象结构.它包含内蕴和外蕴部分(别被术语迷惑,这是一种比较深 ...

  9. Jquery动态设置下拉框selected --(2018 08/12-08/26周总结)

    1.Jquery动态根据内容设置下拉框selected 需求就是根据下拉框的值动态的设置为selected,本以为很简单,网上一大推的方法,挨着尝试了之后却发现没有一个是有用的.网上的做法如下: &l ...

  10. 设计模式之工厂模式(Factory)(3)

    在面向对象编程中,最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下,new操作符直接生成对象会带来一些问题.举例来说,许多类型对象的创造需要一系列的 ...