【问题标题】:C# Shorten if statementC# 缩短 if 语句
【发布时间】:2018-05-01 16:06:52
【问题描述】:

我知道这可能是一个非常愚蠢的问题,但作为一个学习者,我总是喜欢学习新事物。无论如何,这里有一个简短的If 声明:

string test = "It's a test";
string test2;
if (test != "")
{
    test2 = test;
}
else
{
    test2 = "It's null";
}

注意:我知道Regex 也可用于检查字符串是否为空:Regex.IsMatch( "[A-TVWZ]", test)。另外,我知道我可以使用SELECT CASE

在上面的代码中,我检查test字符串是否为空。如果是,则test2获取一个值,如果不是,test2获取另一个值。

我的问题是,有没有更短/更优雅/更快的方法?我的意思是一行将检查字符串是否为空并向test2 提供所需的值?我知道替代解决方案可能需要相同的执行时间,但只是想知道是否有一/两行代码替代方案?

详细说明

我想检查一个字符串是否为空。对于每种情况,另一个字符串获取特定值...

【问题讨论】:

  • 你可以test != ""和三元运算符一起使用:test2 = test != "" ? test : "It's null";
  • 空字符串与 null 不同。还有更快是什么意思?你不会比 if 语句检查一个简单的值“更快”
  • 您的示例无法编译,因为您的大括号放错了位置。
  • @zackraiyan 正则表达式与什么有什么关系?你到底在这里问什么?你为什么不使用string.IsNullOrEmpty()?我有很多问题...
  • @zackraiyan 您在问题中提到“更快”。 “更快”是“更快”的同义词

标签: c# if-statement


【解决方案1】:

你可以使用三元运算符:

string test = "It's a test";
string test2 = (test != "") ? test : "0-length string";

【讨论】:

  • 如何“更快”?
  • 它不会执行得更快,但它的代码行数更少,这似乎是问题所在。
  • @maccettura 因为它同时初始化和声明? p.s.使用 string.IsNullOrEmpty(string) 因为 "" 很丑:P
  • 我想知道为什么test 也被提前初始化......为什么不把它放在 if 本身里面呢?它是否打算作为参数?
  • @zackraiyan 不,我只是告诉你,你可以简化你的逻辑。完全地。避免问题总是比为他们解决问题更好
【解决方案2】:
var test = "It's a test";
var test2 = (!string.IsNullOrEmpty(test)) ? test : "It's null";

【讨论】:

  • 特别是对于新手来说,如果您在回答中提供一点解释,它会有所帮助。这里对三元运算符的一点评论将使您的答案更有用。
猜你喜欢
  • 2012-07-05
  • 1970-01-01
  • 2018-08-19
  • 1970-01-01
  • 2016-02-28
  • 1970-01-01
  • 2016-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多