在C#中,要判断一个字符串是否不等于空(即它既不是null也不是空字符串""),方法有如下几种,如下。
方法1
使用逻辑运算符和string.IsNullOrEmpty方法
string myString = "123"; // 假设要检查的字符串
if (!string.IsNullOrEmpty(myString))
{ // 字符串不是null,也不是空字符串
}
方法2
使用逻辑运算符和string.IsNullOrWhiteSpace方法(如果还要检查空白字符串,如只包含空格、制表符或换行符的字符串)
string myString ="123"; // 假设这是要检查的字符串
if (!string.IsNullOrWhiteSpace(myString))
{ // 字符串不是null,也不是空字符串或仅包含空白字符
}
方法3
使用逻辑运算符和直接比较(只检查空字符串,不检查null)
string myString = "123"; // 假设这是要检查的字符串
if (myString != null && myString != "")
{ // 字符串不是null,也不是空字符串
}
方法4
使用C# 8.0及更高版本的空合并运算符(null-conditional operator)和逻辑运算符(仅当需要提供一个默认值时使用)
string myString ="123"; // 假设这是要检查的字符串
string nonNullOrEmptyString = myString ?? ""; // 如果myString是null,则nonNullOrEmptyString将被设置为""
if (nonNullOrEmptyString != "")
{ // 字符串不是空字符串(但可能是null,但在这个例子中已经被转换成了"")
}
但是,请注意,上面的方法4只检查了空字符串,并没有检查原始字符串是否为null。如果需要同时检查null和空字符串,最好使用第一种或第二种方法。
测试代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace WindowsFormsApplication1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void strFun1(){string myString ="123"; // 假设要检查的字符串 if (!string.IsNullOrEmpty(myString)){// 字符串不是null,也不是空字符串 MessageBox.Show("字符串不是null,也不是空字符串");}myString = null;if (string.IsNullOrEmpty(myString)){// 字符串不是null,也不是空字符串 MessageBox.Show("字符串是null或是空字符串");}myString = "";if (string.IsNullOrEmpty(myString)){// 字符串不是null,也不是空字符串 MessageBox.Show("字符串是null或是空字符串");}}private void strFun2(){string myString ="123"; // 假设这是要检查的字符串 if (!string.IsNullOrWhiteSpace(myString)){// 字符串不是null,也不是空字符串或仅包含空白字符 MessageBox.Show("字符串不是null,也不是空字符串或仅包含空白字符");}myString = null;if (string.IsNullOrWhiteSpace(myString)){// 字符串不是null,也不是空字符串 MessageBox.Show("字符串是null或是空字符串或仅包含空白字符");}myString = "";if (string.IsNullOrWhiteSpace(myString)){// 字符串不是null,也不是空字符串 MessageBox.Show("字符串是null或是空字符串或仅包含空白字符");}myString = " ";if (string.IsNullOrWhiteSpace(myString)){// 字符串不是null,也不是空字符串 MessageBox.Show("字符串是null或是空字符串或仅包含空白字符");}}private void strFun3(){string myString = "123"; // 假设要检查的字符串 if (myString != null && myString != ""){// 字符串不是null,也不是空字符串 MessageBox.Show("字符串不是null,也不是空字符串"); }myString = null;if (myString == null ){// 字符串是null MessageBox.Show("字符串是null");}myString = "";if (myString == ""){// 字符串是空字符串 MessageBox.Show("字符串是空字符串");}}private void strFun4(){string myString = "123"; // 假设要检查的字符串 string nonNullOrEmptyString = myString ?? ""; // 如果myString是null,则nonNullOrEmptyString将被设置为"" if (nonNullOrEmptyString != null && nonNullOrEmptyString != ""){// 字符串不是null,也不是空字符串 MessageBox.Show("字符串不是null,也不是空字符串");}if (nonNullOrEmptyString == null){// 字符串是null MessageBox.Show("字符串是null");}if (nonNullOrEmptyString == ""){// 字符串是空字符串 MessageBox.Show("字符串是空字符串");}}private void button1_Click(object sender, EventArgs e){strFun1();}private void button2_Click(object sender, EventArgs e){strFun2();}private void button3_Click(object sender, EventArgs e){strFun3();}private void button4_Click(object sender, EventArgs e){strFun4();}}
}