Arrays 字符串、数组及其赋值vb.net

Arrays 字符串、数组及其赋值vb.net,arrays,vb.net,string,variable-assignment,Arrays,Vb.net,String,Variable Assignment,这是我正在尝试的,但VB不喜欢它,我在这里尝试的是可能的还是应该尝试另一条路线 Dim mystringarray() As String = If(trueorfalse, {"TrueString"}, {"List", "Of", "Other", "Strings"}) 错误的描述如下所示 需要一个表达式。 第一次和第二次{ 最后 需要逗号“)”或有效的表达式继续。 最后} .net framework 3.5和Visual Studio 2008 我要找的是新的String(){“T

这是我正在尝试的,但VB不喜欢它,我在这里尝试的是可能的还是应该尝试另一条路线

Dim mystringarray() As String = If(trueorfalse, {"TrueString"}, {"List", "Of", "Other", "Strings"})
错误的描述如下所示 需要一个表达式。 第一次和第二次{ 最后 需要逗号“)”或有效的表达式继续。 最后}

.net framework 3.5和Visual Studio 2008

我要找的是新的String(){“TrueString”}语法,它工作得很好


但是上述语法在VS Express 2013下运行良好,如果您使用的是较旧版本的.Net Framework,如2.0,那么简单的
If
操作符在这种情况下将不起作用。您必须使用
If-Then-Else-End-If
或您可以使用
IIf
方法获得单行结果

你也可以这样做

Dim bValue As Boolean = False
Dim mystringarray() As String = IIf(bValue, New String() {"TrueString"}, New String() {"List", "Of", "Other", "Strings"})

你说VB不喜欢它是什么意思?你的代码对我来说运行得很好。如果有错误,就会有错误消息。始终提供该错误消息,即使您认为我们不需要它。您使用的是什么.net framework?引入
IIf
操作符如何帮助回答此问题?如果OP使用的是较旧版本的.net framework,则
if
操作符将不起作用。这就是为什么我提出了这个解决方案,OP刚才提到VB不喜欢它。我认为这个假设应该在你的答案中明确说明。那么这将是一个非常好的答案。@Enigmativity:与If运算符(条件运算符)相反,IIf只是一个方法。只是吹毛求疵;)@shell:使用不可编译的选项strict,是吗?IIf不是强类型的,这意味着您必须始终将其从对象强制转换为正确的类型。还值得一提的是,它没有短路功能,因此无论B值如何,都会对两侧进行评估。在里面我发现IIf在大多数情况下都是无用的。