0

C#では、これを行うことができます:

public string[] MyStrings;
...
...
if(MyStrings.Contains("bob")) ...

ObjectScript では、これはどのように行われますか?

タイプを使用すると、ここで%ArrayOfObjects探しているものが正確にわかりません

私が試したこと:

#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") '= ""
{
}
4

3 に答える 3

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"
}
于 2012-11-06T18:03:34.090 に答える
1

あなたはそれを正しく持っています。%Library.ArrayOfDataTypes のサブクラスを作成し、"contains" などの独自のメソッドを作成することをお勧めします。

とにかく制御しないライブラリ クラスよりも、制御する独自のクラスを使用する方がおそらく少し安全です (ただし、ピンチの場合は常に %Dictionary パッケージ メソッドを使用して、ライブラリ クラスへのすべての参照を新しいクラスに切り替えることができます)。デザインなので、それほど大したことではありません)。

于 2012-11-02T20:18:33.087 に答える
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#'=と同等であると仮定しています。!=

于 2012-11-02T20:15:40.917 に答える