Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

.NET Collections can accessed using the following methods:

Visual LANSA For statement

     Define Field(#LNum6501) Type(*INT)
Define Field(#LStr6501) Type(*STRING) Length(20)
Define Field(#LBol6501) Type(*BOOLEAN)
 
Define_Com Class(#DNE003_SystemDll.System.Collections.Specialized.StringCollection) Name(#LCls6501_Coll) Reference(*DYNAMIC)
 
#LCls6501_Coll <= *New #DNE003_SystemDll.System.Collections.Specialized.StringCollection
 
#LStr6501 := 'Test'
#LCls6501_Coll.Add( 'Test1' )
#LCls6501_Coll.Add( 'Test2' )
#LCls6501_Coll.Add( 'Test3' )
 
#LNum6501 := 0
#LBol6501 := true
For Each(#Current) In(#LCls6501_Coll)
#LNum6501 += 1
If (#Current <> (#LStr6501 + #LNum6501.AsString))
#LBol6501 := false
Endif
Endfor

...

.NET indexer (commonly represented by the Item property)

Define Field(#LNum6601) Type(*INT)
Define Field(#LStr6601) Type(*STRING) Length(20)
Define Field(#LBol6601) Type(*BOOLEAN)
 
Define_Com Class(#DNE003_SystemDll.System.Collections.Specialized.StringCollection) Name(#LCls6601_Coll) Reference(*DYNAMIC)
 
#LCls6601_Coll <= *New #DNE003_SystemDll.System.Collections.Specialized.StringCollection
 
#LStr6601 := 'Test'
#LCls6601_Coll.Add( 'Test0' )
#LCls6601_Coll.Add( 'Test1' )
#LCls6601_Coll.Add( 'Test2' )
 
* ++++++++++++++++++++++++++++++++++++

...

* A string collection - GET
#LBol6601 := False
If (#LCls6601_Coll.Item\[2\]

...

=

...

"Test2")

...


#LBol6601

...

:=

...

True

...


Else

...


#LBol6601

...

:=

...

False

...


Endif

...



* ++++++++++++++++++++++++++++++++++++

...

* A string collection - SET

#LCls6601_Coll.Item\[0\]

...

:=

...

'NewValue0'

...


#LCls6601_Coll.Item\[1\]

...

:=

...

'NewValue1'

...


#LCls6601_Coll.Item\[2\]

...

:=

...

'NewValue2'

...


If

...

(#LCls6601_Coll.Item\[1\]

...

=

...

'NewValue1')

...


#LBol6601

...

:=

...

True

...


Else

...


#LBol6601

...

:=

...

False

...


Endif

...

.NET

...

enumerator

...

Define

...

Field(#LNum6401)

...

Type(*INT)

...

Define

...

Field(#LNum6402)

...

Type(*INT)

...

Define

...

Field(#LStr6401)

...

Type(*STRING)

...

Length(20)

...

Define

...

Field(#LBol6401)

...

Type(*BOOLEAN)

...

 

...

Define_Com

...

Class(#DNE003_SystemDll.System.Collections.Specialized.StringCollection)

...

Name(#LClass6401_Coll)

...

Reference(*DYNAMIC)

...

Define_Com

...

Class(#DNE003_SystemDll.System.Collections.Specialized.StringEnumerator)

...

Name(#LClass6402_Enum)

...

Reference(*DYNAMIC)

...

 

...

#LClass6401_Coll

...

<=

...

*New

...

#DNE003_SystemDll.System.Collections.Specialized.StringCollection

...

 

...

#LStr6401

...

:=

...

'Test'

...

#LClass6401_Coll.Add(

...

'Test1'

...

)

...

#LClass6401_Coll.Add(

...

'Test2'

...

)

...

#LClass6401_Coll.Add(

...

'Test3'

...

)

...


  • ++++++++++++++++++++++++++++++++++++
  • Use Enumerator
     
    #LClass6402_Enum <= #LClass6401_Coll.GetEnumerator()
    #LNum6401 := 0
    #LBol6401 := true
    #LClass6402_Enum.Reset()
    Dowhile Cond(#LClass6402_Enum.MoveNext())
    #LNum6401 += 1
    If (#LClass6402_Enum.Current <> (#LStr6401 + #LNum6401.AsString))
    #LBol6401 := false
    Endif
    Endwhile
     
    If (#LBol6401)
    #STD_TEXT := 'Success'
    Else
    #STD_TEXT := 'Failed'
    Endif