Using Collections

In Dynamics NAV, a common development task is to write code that loops through a set of records and performs an operation on each record in the set. You can do the same task in the .NET Framework with a collection, which is a .NET Framework object that you can iterate over. To loop through a collection in Dynamics NAV, the .NET Framework object must support the System.Collections interface. Many types in the .NET Framework and assemblies that inherit from .NET Framework types support the System.Collections interface. The following example shows how you can write C/AL code to handle collections for a type that supports the System.Collections interface.

Example

The following example implements the System.ArrayList interface and uses the GetProcesses method from the System.Diagnostics.Process type to display a list of process IDs in message boxes. Although this is not a typical example for an ERP product such as Dynamics NAV, it shows the flexibility that you get with the .NET Framework.

The example requires that you define the following C/AL variables.

Variable name DataType SubType
MyProcessList DotNet 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Array
Process DotNet 'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Diagnostics.Process
I Integer
MyProcessList := Process.GetProcesses();  
FOR I:=0 TO (MyProcessList.Length()-1) DO  
BEGIN  
    Process := MyProcessList.GetValue(I);  
    MESSAGE(FORMAT(Process.Id));  
END;  
  

See Also

Extending Microsoft Dynamics NAV Using Microsoft .NET Framework Interoperability