NET Collections

Visual LANSA

.NET Collections

.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