在C#中,我可以这样做:
public string[] MyStrings;
...
...
if(MyStrings.Contains("bob")) ...
在ObjectScript中如何完成?
使用%ArrayOfObjects
类型,我看不到我要查找的内容here
我尝试过:
#Dim MyStrings As %ArrayOfDataTypes
do MyStrings.SetAt("User","User")
do MyStrings.SetAt("Users","Users")
do MyStrings.SetAt("Group","Group")
do MyStrings.SetAt("Groups","Groups")
// if MyStrings contains Groups
if MyStrings.GetAt("Groups") '= ""
{
}
答案 0 :(得分:2)
听起来你想要.IsDefined() method。例如:
#Dim MyStrings As %ArrayOfDataTypes
do MyStrings.SetAt("User","User")
do MyStrings.SetAt("Users","Users")
do MyStrings.SetAt("Group","Group")
do MyStrings.SetAt("Groups","Groups")
// if MyStrings contains Groups
if MyStrings.IsDefined("Groups")
{
// code to execute if MyStrings contained "Groups"
}
答案 1 :(得分:1)
我不熟悉那种语言,但你可以试试这样的话:
//declare myString to hold a string
set myString = MyStrings.GetNext("")
While myString '= ""
{
if MyStrings.GetAt(myString) '= "" //Or should it be something like myString.value? Is there a way to check the type of an object to see if it is a string?
{
//Do something here. Exit loop if you are trying to find just a match.
}
}
我假设'=
相当于C#中的!=
。
答案 2 :(得分:1)
你做得对。我建议使用你自己的方法创建%Library.ArrayOfDataTypes的子类,例如“contains”。
使用您自己控制的类可能比使用您无法控制的库类更安全(尽管在紧要关头,您总是可以使用%Dictionary包方法将对库类的所有引用切换为新的你的设计类,所以它并不是那么大的交易)。