C# 判断字符串不等于空的示例
在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();}}
}


相关文章:
C# 判断字符串不等于空的示例
在C#中,要判断一个字符串是否不等于空(即它既不是null也不是空字符串""),方法有如下几种,如下。 方法1 使用逻辑运算符和string.IsNullOrEmpty方法 string myString "123"; // 假设要检查的字…...
直方图中最大的矩形
#include<iostream> #include<algorithm> using namespace std; const int N 100010; //l[i], r[i]表示第i个矩形的高度可向两侧扩展的左右边界 int h[N], q[N], l[N], r[N]; typedef long long LL; int main() { int n; while(scanf("%d"…...
分布式锁redisson
1:pom.xml添加依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.21.1</version> </dependency>2-1:方法一:读取默认ym…...
将小爱音箱接入 ChatGPT 和豆包ai改造成专属语音助手
这个GitHub项目,mi-gpt,旨在将小爱音箱和米家设备与ChatGPT和豆包集成,有效地将这些设备转变为个性化语音助手。以下是对其功能和设置的详细分析: 主要特点 角色扮演:该项目允许小爱适应不同的角色,如伴侣…...
短网址生成原理及使用
生成短网址介绍: 一、定义 短网址(Short URL)是形式上比较短的网址,它通过将原始冗长的网址进行缩短,方便用户分享和记忆。短网址的生成主要依赖于特定的算法和服务,通过后端服务转向来实现网址的缩短。 …...
C#调用word组件转pdf,遇到视图保护解决方法
由于我们在自己项目里常常要调用office组件将word另存pdf格式,但是常遇到用户上传的word视图保护, 组件不能正常打开word而导致不能有效转pdf(原因是文件被WPS编辑过),困扰很长时间,各种方法用过如用第三方组件替换office组件&…...
NAT端口映射,实现外网访问内网服务器
目录 前言一、搭建网络拓扑1.1 配置server和pc1.1.1 配置server01.1.2 配置server11.1.3 配置pc0 1.2 配置客户路由器1.2.1 配置路由器IP1.2.2 配置静态路由 1.3 配置ISP路由器 二、配置端口映射2.1 在客户路由器配置端口映射2.2 测试公网计算机访问私网服务器2.2.1 PC0向serve…...
【面试笔记】嵌入式软件工程师,汽车电子软件相关
文章目录 1. C语言基础1.1 const1.2 static1.3 回调函数的用法1.4 宏定义1.5 编译、链接过程1.6 堆与栈的区别?1.7 简单的字符串算法题,C语言实现1.7.1 给定一个字符串,按顺序筛选出不重复的字符组成字符串,输出该字符串1.7.2 给定…...
uniapp小程序开发 | 从零实现一款影视类app (后台接口实现,go-zero微服务的使用)
uniapp小程序开发实战系列,完整介绍从零实现一款影视类小程序。包含小程序前端和后台接口的全部完整实现。系列连载中,喜欢的可以点击收藏。 该篇着重介绍获取轮播图后台接口和获取正在热映电影的两个后台接口的实现。 后台服务使用golang,…...
【C#】委托
文章目录 委托自定义委托模板方法(工厂模式回调(callback)函数(观察者模式多播(multicast)委托委托的高级使用使用接口 重构 模板方法代码注意参考 委托 委托(delegate)是一种类型,定义了一种方…...
【面试题】创建两个线程交替打印100以内数字(一个打印偶数一个打印奇数)
阅读导航 一、问题概述二、解决思路三、代码实现四、代码优化 一、问题概述 面试官:C多线程了解吗?你给我写一下,起两个线程交替打印0~100的奇偶数。就是有两个线程,一个线程打印奇数另一个打印偶数,它们交替输出&…...
PgMP考试结束后多久出成绩?附成绩查询方法
PgMP考试结束后多久出成绩?这是许多参加PgMP考试的考生都非常关心的问题。今天就给大家讲解一下PgMP考试多久可以知道成绩? 一、PgMP考试成绩查询时间 PgMP考试一般在考试结束后的6-8周左右才会出成绩,届时PMI官方会通过电子邮件的形式提醒…...
springboot项目Redis统计在线用户
springboot项目Redis统计在线用户 我的项目有个显示用户的遗忘曲线,需要统计在线用户以计算他们的曲线 思考了两种方案,但都是用Redis的bitmap数据结构Bitmap是一种特殊类型的数组,其中每个元素只能存储0或1。在Redis中,Bitmap实际…...
GNeRF论文理解
文章目录 主要解决什么问题?结构设计以及为什么有效果?个人想法。 主要解决什么问题? 本文主要想要解决的问题是 如何使用uncalibrated的照片来进行Nerf重建。虽然说现在已经有了一些方式可以对相机位姿进行估计和优化,但是他们限…...
0531作业 链表
结果 整体代码 主要实现 /**实现* */ #include "./linklist.h"linklist* create_linklist(datatype param){linklist* node(linklist*)malloc(sizeof(linklist));if(NULLnode){puts("节点创建失败");}node->paramparam;node->pnextNULL;puts("…...
C++ STL - 容器
C STL(标准模板库)中的容器是一组通用的、可复用的数据结构,用于存储和管理不同类型的数据。 目录 零. 简介: 一 . vector(动态数组) 二. list(双向链表) 三. deque(…...
AI生成沉浸式3D世界(空间照片/视频)
面向Vision Pro等空间计算设备的产品指南 & 技术实现路径 一、通俗理解 ldi3格式概览:这是一种创新的3D内容格式,专为Vision Pro、Quest等VR头戴设备设计,让你能沉浸在一个几可乱真的三维世界,体验仿佛亲临其境的感受。 内容创作:利用开源工具,结合多角度摄像捕捉,…...
【Vue】异步更新 $nextTick
文章目录 一、引出问题二、解决方案三、代码实现 一、引出问题 需求 编辑标题, 编辑框自动聚焦 点击编辑,显示编辑框让编辑框,立刻获取焦点 即下图上面结构隐藏,下面结构显示,并且显示的时候让它自动聚焦。 代码如下 问题 “…...
【uCOS-III-编程指南】
uCOS-III-编程指南 ■ [野火]uCOS-III内核实现与应用开发实战指南■■■■ ■ [野火]uCOS-III内核实现与应用开发实战指南 添加链接描述 ■ ■ ■ ■...
2004NOIP普及组真题 2. 花生采摘
线上OJ: 【04NOIP普及组】花生采摘 核心思想: 1、本题为贪心即可。 2、因为本题严格限制了顺序,所以先把每个节点的花生数量按降序排序。然后逐一判断下一个花生是否需要去采摘即可 3、每一次采摘完,记录耗时 t 以及采集的花…...
Python数据处理实战:列表推导式+time库+DataFrame+groupby详细代码注释
🚢 船长Talk | 每天一篇数据分析干货 关注公众号「船长Talk」,获取更多 Python / 数据分析 / SQL 实战技巧,附完整注释代码。 每篇文章都有详细代码注释,学了就能用。Python 数据处理实战:列表推导式 time库 DataFra…...
从Claude Code代码泄漏到AI Agent逻辑设计VS龙虾OpenClaw
近期 Anthropic的Claude Code 的源码泄露事件,为业界提供了一份价值连城的“活体解剖指南”。本文将深入对比高内聚的 Claude Code 架构与高解耦的 OpenClaw 通用框架,从系统执行逻辑、上下文管理、OS 沙盒交互以及记忆提纯等维度,探讨次世代 AI Agent 在模型推理与工程落地…...
A89306电机控制器驱动库:SPI寄存器级控制与FOC系统集成
1. A89306电机控制器驱动库技术解析与工程实践1.1 芯片定位与系统角色A89306是由Allegro MicroSystems推出的高集成度三相无刷直流(BLDC)电机控制器专用IC,面向中高端工业驱动与精密运动控制场景。该芯片并非通用MCU,而是集成了栅…...
OpenClaw扩展性测试:Qwen3.5-9B-AWQ-4bit同时处理10个图片任务表现
OpenClaw扩展性测试:Qwen3.5-9B-AWQ-4bit同时处理10个图片任务表现 1. 测试背景与目标 最近在尝试用OpenClaw搭建一个本地化的图片处理工作流,核心需求是批量处理社交媒体图片的自动标注和分类。我选择了Qwen3.5-9B-AWQ-4bit这个支持多模态的模型镜像&…...
ILI9341 TFT驱动库:嵌入式HMI全栈图形解决方案
1. 项目概述ILI9341_LTSM 是一款面向 Arduino 生态系统的 C 驱动库,专为 ILI9341 控制芯片的 SPI 接口 TFT LCD 显示屏设计。该库并非仅提供基础初始化与像素写入功能,而是构建了一套完整的嵌入式图形子系统,覆盖从底层硬件抽象、图形绘制、字…...
3种方案玩转赛博朋克2077存档修改:从入门到精通的技术指南
3种方案玩转赛博朋克2077存档修改:从入门到精通的技术指南 【免费下载链接】CyberpunkSaveEditor A tool to edit Cyberpunk 2077 sav.dat files 项目地址: https://gitcode.com/gh_mirrors/cy/CyberpunkSaveEditor 赛博朋克2077存档编辑器是一款专业级游戏数…...
同一篇80%AI率的论文,3种方法降完效果对比
为了给同学一个有说服力的参考,我用同一篇论文做了一个完整对比实验: 同一篇知网AI率80%的论文(经济学,3万字),分别用3种方法处理,然后统一检测,看最终结果。 下面是完整数据。 论…...
计算机毕业设计:Python地铁线路客流与票价数据可视化系统 Django框架 数据分析 可视化 大数据 机器学习 深度学习(建议收藏)✅
博主介绍:✌全网粉丝50W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战8年之久,选择我们就是选择放心、选择安心毕业✌ > 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与…...
个人信息保护:使用AI工具必须知道的隐私安全指南
个人信息保护的重要性AI工具的普及带来了便利,但也存在隐私泄露风险。未经保护的个人信息可能被滥用,导致身份盗窃、诈骗等问题。了解隐私安全措施至关重要。选择可信的AI工具优先选择有明确隐私政策、数据加密措施的工具。查看工具是否通过第三方安全认…...
失业期PHP程序员极致利用时间的庖丁解
"失业期 PHP 程序员极致利用时间”,常被误解为“疯狂投简历”或“没日没夜地刷 LeetCode”。 但本质上,这是一场**“认知重构”与“资产增值”的特种战役**。 失业不是“空窗期”,而是上帝强行塞给你的**“全脱产战略转型期”**。 在在职…...
