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

时间:2013-08-19 19:59:36

标签: vb.net string

Supossing我有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

但是,通常,任何字符串都可以为空或为空 所以,如果我连接空字符串,我会得到

例如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", "")

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

(我不能改变这个的设计,因为字符串用于其他几个方面)

2 个答案:

答案 0 :(得分:6)

在C#中:

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

请注意,这也适用于较大的数组。如果您使用的是.NET< 4.0

,请添加.ToArray()

答案 1 :(得分:0)

我只是想抛出一些东西,以防你计划对数据库执行此操作或沿着这些行执行此操作。简单地在条款之间加上“OR”不会返回您期望的结果。您需要首先在条件周围加上括号,以保留逻辑。

最像你的意思是:

(db = 45 AND frec = 500)OR(db = 25 AND frec = 1)OR(....

小心,或者你可能会对你得到的东西感到惊讶。祝你好运!