【问题标题】:If array length = value, then do something C#如果数组长度 = 值,则执行 C#
【发布时间】:2021-12-27 09:30:27
【问题描述】:

我有一个从 SQL 调用的数组,其中包含 ,(逗号)。我想用它填充一个excel。但是,有时数组没有值,1 个值,2 .....最多 5 个值(即,逗号)。所以我试图根据数组的长度将它分成一个单独的变量。

string[] BeneficiaryFullName1 = ex.BeneficiaryFullName1.Split(' ');

if (BeneficiaryFullName1 != null || 
    BeneficiaryFullName1.Length >= 0 && 
    BeneficiaryFullName1.Length < 1)
{
    ex.BeneficiaryFullName1 = BeneficiaryFullName1[0];
}

if (BeneficiaryFullName1 != null || 
    BeneficiaryFullName1.Length >= 0 && 
    BeneficiaryFullName1.Length < 2)
{
    ex.BeneficiaryFullName1 = BeneficiaryFullName1[0];
    ex.BeneficiaryFullName2 = BeneficiaryFullName1[1];
}

但是,我没有做对。当有 "" 空返回时,它会继续执行第二个 if 语句并给出错误。我做错了什么?

【问题讨论】:

  • 检查Array.Length 属性。如果为 0,则数组没有值
  • 向我们展示这些属性的实际值
  • ex 到底是什么?
  • 不需要您对 null 的检查。如果要拆分的输入字符串不为空,那么即使没有空间来拆分输入,结果数组中也至少有一个元素(长度 == 1)。

标签: c# arrays split


【解决方案1】:

删除BeneficiaryFullName1 != null(这是冗余)和BeneficiaryFullName1.Length &lt; ...(这是错误:如果我们的名称包含4 字样,我们可以并且应该取前两个):

// We want at most 3 items, empty ones (e.g. trailing spaces) removed
string[] BeneficiaryFullName1 = ex.BeneficiaryFullName1.Split(
  ' ', 3, StringSplitOptions.RemoveEmptyEntries);

// If we have at least 2 items, take the 2nd
if (BeneficiaryFullName1.Length >= 2)
  ex.BeneficiaryFullName2 = BeneficiaryFullName1[1];

// If we have at least 1 item, take the 1st
if (BeneficiaryFullName1.Length >= 1)
  Bex.BeneficiaryFullName2 = BeneficiaryFullName1[0];

【讨论】:

  • 谢谢,我搞定了
  • @ShaunWeinberg,如果它确实解决了您的问题,请考虑接受它作为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-17
  • 2019-06-09
  • 2018-04-21
  • 2015-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多