繁体   English   中英

if简写

[英]if statement short-hand

如果有更简洁的方式来编写这种类型的语句:

if (!string.IsNullOrEmpty(c1))
{
    var _individual = new Individual { Age = Convert.ToInt32(c1) };
    request.Individuals.Add(_individual);
}

if (!string.IsNullOrEmpty(c2))
{
    var _individual = new Individual { Age = Convert.ToInt32(c2) };
    request.Individuals.Add(_individual);
}

if (!string.IsNullOrEmpty(c3))
{
    var _individual = new Individual { Age = Convert.ToInt32(c3) };
    request.Individuals.Add(_individual);
}

if (!string.IsNullOrEmpty(c4))
{
    var _individual = new Individual { Age = Convert.ToInt32(c4) };
    request.Individuals.Add(_individual);
}

if (!string.IsNullOrEmpty(c5))
{
    var _individual = new Individual { Age = Convert.ToInt32(c5) };
    request.Individuals.Add(_individual);
}

当然! 编写一个方法:

private void AddIfAgeValid(string age) 
{    
    if (!string.IsNullOrEmpty(age))
    {
        var _individual = new Individual { Age = Convert.ToInt32(age) };
        request.Individuals.Add(_individual);
    }
}

然后只需调用它:

AddIfAgeValid(c1);
AddIfAgeValid(c2);
AddIfAgeValid(c3);
// ..

您可能还必须传递request ,不确定在哪里声明它。

您可能还想研究使用数组或List<string>来存储年龄,而不是使用c1, c2, c3, ..变量。

foreach (var c in new[] {c1, c2, c3, c4, c5})
{
  if (!string.IsNullOrEmpty(c))
  {
    var _individual = new Individual { Age = Convert.ToInt32(c) };
    request.Individuals.Add(_individual);
  }
}
foreach (var x in (new[] { c1, c2, c3, c4, c5 }).Where(x => !string.IsNullOrEmpty(x)))
    request.Individuals.Add(new Individual { Age = Convert.ToInt32(x) });

如果只有Individuals支持AddRange ,则为AddRange

request.Individuals.AddRange((new[] { c1, c2, c3, c4, c5 }).Where(x => !string.IsNullOrEmpty(x)).Select(x => new Individual { Age = Convert.ToInt32(x) }));

但是我不会走那么远。 它比foreach可读性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM