【问题标题】:How can I remove empty string from an array of string in C#? [duplicate]如何从 C# 中的字符串数组中删除空字符串? [复制]
【发布时间】:2019-05-20 09:37:09
【问题描述】:

我对这个 .NET C# 应用程序有以下问题。

我有这个字符串数组:

string[] uorsList = uors.Split(';');

有时这个数组包含一个对应于空字符串(“”)的元素。

从这个 uorsList 数组中删除所有空字符串元素的聪明方法是什么?

【问题讨论】:

  • 试试看:string[] uorsList = uors.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
  • 在一般意义上,如何过滤数组以省略空字符串值,您可以使用 Oliver 发布的答案,但在这种特殊情况下,最好使用 @KunalMukherjee 发布的代码他的评论,因为这将确保首先不会将空字符串添加到数组中。
  • 当使用string.Split 的非常简单的解决方案已经可用时,我发现人们急于生成 LINQ 答案的速度很有趣...
  • @Martin,鉴于问题的上下文与从数组中删除项有关,LINQ 是一个完全有效的选择——即使它不是最好的选择例子。根据问题的标题和内容,用户可能会在未使用string.Split时访问此页面。

标签: c# .net


【解决方案1】:

您可以使用 LINQ 过滤掉空的整体:

using System.Linq;
...

string[] uorsList = uors.Split(';');
var filtered = uorsList.Where(s=> !string.IsNullOrWhiteSpace(s)).ToArray();

编辑:

正如 cmets 中所指出的,当使用 string.Split 时,以下是更好的选择,因为空条目永远不会进入数组:


string[] uorsList = uors.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries);

【讨论】:

  • 最好使用 Kunal 在 cmets 中发布的代码首先确保空字符串不会出现在数组中。
  • 您可以直接申请string[] uorsList = uors.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
  • @LasseVågsætherKarlsen 在这种情况下是正确的。我会把这个留给任何找到这个页面但没有使用过string.Split的人
  • 同意,对于与 String.Split 无关的一般问题,这是一个答案。也许您也应该在答案中编辑 StringSplitOptions 变体?
  • 谢谢,我添加了一个编辑
【解决方案2】:

以下是一些方法:

string uors = ";bla;bla;";
string[] uorsList = uors.Split(';').Where(x => string.IsNullOrEmpty(x) == false).ToArray();

string uors = ";bla;bla;";
string[] uorsList = uors.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries);

string uors = ";bla;bla;";
List<string> uorsList = uors.Split(';').ToList();
uorsList.RemoveAll(x => string.IsNullOrEmpty(x));

【讨论】:

    【解决方案3】:

    您可以尝试以下方法:

    string[] uorsList = uors.Split(';').Where(s => s != string.IsNullOrWhiteSpace).ToArray();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-15
      • 1970-01-01
      • 2022-11-16
      • 2018-06-09
      • 2019-05-21
      • 1970-01-01
      • 2014-01-26
      • 2012-11-19
      相关资源
      最近更新 更多