vb.net - 如果字符串不为 null 或为空,则在字符串之间添加字符串

标签 vb.net string

假设我有 4 个字符串,我想在它们之间添加一个 OR 运算符:

Dim s1="db = 45 AND frec = 500 "
Dim s2="db = 25 AND frec = 1 "
Dim s3="db = 5 AND frec = 2 "
Dim s4="db = 15 AND frec = 4 "

所以

Dim result = "db = 45 AND frec = 500 OR db = 25 AND frec = 1 OR db = 5 AND frec = 2 OR db = 15 AND frec = 4"

连接字符串会很简单

Dim result= s1 & " OR " & s2 & " OR " & s3 & " OR " & s4

但一般来说,任何字符串都可以为空或为 null 所以如果我连接空字符串,我会得到

例如s2 = ""

Dim result = "db = 45 AND frec = 500 OR  OR db = 5 AND frec = 2 OR db = 15 AND frec = 4"

这是不正确的,我想替换像“OR OR”这样的字符串

 Dim result = result.Replace("OR OR", "")

有更好的方法吗?一个快速的解决方案是对所有情况进行硬编码,但我猜这不是很好

(我不能改变这个设计,因为字符串被用在其他几个东西上)

最佳答案

在 C# 中:

 string.Join(" OR ", new[] { stringA, stringB }
      .Where(s => !string.IsNullOrEmpty(s)));

请注意,这也适用于更大的阵列。如果您使用的是 .NET <4.0

,请添加 .ToArray()

关于vb.net - 如果字符串不为 null 或为空,则在字符串之间添加字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18322080/

相关文章:

java - Android:从 ArrayList 设置资源字符串 ID?

.net - 编写更高效的时钟函数

c# - C# 到 VB.net 的转换将无法编译 <param name ="x"

vb.net - 在哪里保留结构 : class, 模块或没有?

php - 从 PHP 中的字符串中删除所有连字符、特殊字符等

c++ - 给定一串算术表达式,找出表达式的十进制值。

.net - (反向?)树枚举

c# - VB 编译器不隐式转换为对象?

c++ - 在文本文件中搜索字段名称并将所有后续行返回到控制台 - C++

iphone - Obj-C 组合字符串