2

假设我有 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", "")

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

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

4

2 回答 2

6

在 C# 中:

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

请注意,这也适用于更大的数组。添加.ToArray()以防您使用 .NET <4.0

于 2013-08-19T20:02:52.600 回答
0

我只是想扔掉一些东西,以防您打算对数据库或类似的东西执行此操作。简单地在子句之间加上“或”不会返回您期望的结果。您需要先在条件周围加上括号,以保留您拥有的逻辑。

最像你的意思是:

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

小心点,否则你可能会对你得到的结果感到惊讶。祝你好运!

于 2013-08-19T20:15:47.107 回答