【问题标题】:check for assignment of two dimensional array in c#在 C# 中检查二维数组的分配
【发布时间】:2012-11-09 20:58:17
【问题描述】:

我想知道如何在 c# 中检查二维字符串数组的赋值

string[][] mString; bool empty = string.IsNullOrEmpty(mString);

不能解决问题。有什么帮助吗?

【问题讨论】:

  • 您要检查是否有任何字符串为空/空或全部为空?
  • 不,我想知道这个数组是否被分配。任何想法,如何进行?
  • mString != null && mString.Length > 0
  • 没那么简单……
  • @KoolMartin 肯定是这样,除非你想验证每个内部数组都分配了一个非空的。如果这就是你想要的,那么你应该问那个。

标签: c# multidimensional-array variable-assignment


【解决方案1】:

您究竟想检查什么?

您没有二维数组(即[,]),而是锯齿状数组数组数组

所以你可以写:

bool empty = mString == null;              // the whole (outer) array

// 1+ sub-arrays is null?
bool empty = (mString == null) || mString.Any(a => a == null)) ;

// any string is null or empty
bool empty = (mString == null) 
      || mString.Any(a => a == null))
      || mString.Any(a => a.Any (s => string.IsNullOrEmpty(s));

【讨论】:

  • ups,我不知道它是一个锯齿状数组。所以实际上我喜欢序列化一个锯齿状数组,因此我必须提前检查它是否被初始化。
  • 再说一次,initialized 到底是什么意思?
  • hmm,另一个例子可以解释我试图实现的目标,考虑:int mInt; bool empty = !mInt.Equals(0); Console.WriteLine(empty); 在这里我可以检查是否分配了整数值。现在是锯齿状数组;)
  • @KoolMartin 这实际上不适用于 int。有人很可能已将0 分配给int。如果你想知道锯齿状数组是否被分配给only,你需要做的是array == null)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-14
  • 1970-01-01
  • 2017-02-10
  • 2015-09-17
  • 2012-02-05
  • 1970-01-01
相关资源
最近更新 更多