c# - 在 C# 中创建三元条件
问题描述
我在 c# 中有以下数据表代码,我想将其作为三元运算符条件。
if (!string.IsNullOrEmpty(row[2].ToString()))
{
if (row[2].ToString().Length >= 3)
{
row[2] = row[2].ToString().Substring(0, 3).ToUpper();
}
else
{
row[2] = row[2].ToString().ToUpper();
}
}
如何做到这一点?
解决方案
如何做到这一点?
只需将您的谓词、真表达式和假表达式复制到三元形式:
row[2] = {predicate} ? {true expression} : {false expression}
这使:
if (!string.IsNullOrEmpty(row[2].ToString()))
{
row[2] = row[2].ToString().Length >= 3
? row[2].ToString().Substring(0, 3).ToUpper();
: row[2].ToString().ToUpper();
}
您可以通过分解通用表达式来简化它:
if (!string.IsNullOrEmpty(row[2].ToString()))
{
row2 = row[2].ToString().ToUpper();
row[2] = row2.Length >= 3
? row2.Substring(0, 3);
: row2;
}
您可以使用三元运算符作为最后一个,如果条件不匹配,则将其if
设置为自身,但这不是功能改进,恕我直言更难阅读。row[2]
推荐阅读
- rest - 为什么使用 Google Cloud Drive Rest API file.list 无法获取所有文件?
- python - 如何在 py 编辑器中添加多个 @app.route?
- python-3.x - Python3:在空的熊猫数据框中添加多列行
- php - 有时 ftp_connect() 不能在 php 中工作,其余时间它工作得很好
- javascript - 如何在另一个页面中使用表单选择值
- dvd - 如何将 DVD 复制到本地系统?
- solid-principles - 关于 SOLID 编程实践的实用问题
- sql - 在一个查询中将工资总和与每年的工资增长相加 - SQL PostgreSQL
- tensorflow - OpenCV DNN,从 tensorflow 断言导入 .pb 文件失败错误:函数“populateNet”中的 scaleMat.type() == CV_32FC1
- sql-server - 生成动态 PATINDEX 语句