Page History
.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