Using multiple inputs
Tools can accept a single input or many inputs, depending on the operation. Tools that convert or overlay data can accept multiple datasets as input because of the nature of the operation. In a program, inputs are passed to these tools as a multivalue string, which uses a semicolon to separate each input in the string. A multivalue string is easy to construct in a program using the string manipulation functions built into the language. 
In the following code example, a multivalue string is created with VB.NET and CSharp (C#) concatenation capabilities and used with the Union tool: 
[C#] public void ExampleGPUsingMultipleInputs()
{
    // Initialize the geoprocessor.
    Geoprocessor GP=new Geoprocessor();
    // Initialize the Union tool.
    Union uniontool=new Union();
    // List all feature classes in the workspace.
    GP.SetEnvironmentValue("workspace", @"C:\studyarea");
    IGpEnumList fcColl=GP.ListFeatureClasses("*", "", "");
    // Create a StringBuilder object and add the feature classes as a semicolon-delimited list.
    StringBuilder sb=new StringBuilder();
    string inputfeatures=fcColl.Next();
    while (inputfeatures != "")
    {
        sb.AppendFormat("{0};", inputfeatures);
        inputfeatures=fcColl.Next();
    }
    // Execute the Union tool with multiple inputs creating landuse.shp.
    uniontool.in_features=sb.ToString();
    uniontool.out_feature_class="landuse.shp";
    GP.Execute(uniontool, null);
}
Public Sub ExampleGPUsingMultipleInputs()
    
    ' Initialize the geoprocessor.
    Dim GP As Geoprocessor=New Geoprocessor()
    
    ' Initialize the Union tool.
    Dim uniontool As Union=New Union()
    
    ' List all feature classes in the workspace.
    GP.SetEnvironmentValue("workspace", "C:\studyarea")
    Dim fcColl As ESRI.ArcGIS.Geoprocessing.IGpEnumList=GP.ListFeatureClasses("*", "", "")
    
    ' Create a StringBuilder object and add the feature classes as a semicolon-delimited list.
    Dim sb As StringBuilder=New StringBuilder()
    
    Dim inputfeatures As String=fcColl.Next()
    
    Do While inputfeatures <> ""
        
        sb.AppendFormat("{0};", inputfeatures)
        inputfeatures=fcColl.Next()
        
    Loop
    
    ' Execute the Union tool with multiple inputs creating landuse.shp.
    uniontool.in_features=sb.ToString()
    uniontool.out_feature_class="landuse.shp"
    GP.Execute(uniontool, Nothing)
    
End Sub
See Also:
How Union worksTo use the code in this topic, reference the following assemblies in your Visual Studio project. In the code files, you will need using (C#) or Imports (VB .NET) directives for the corresponding namespaces (given in parenthesis below if different from the assembly name):
- ESRI.ArcGIS.AnalysisTools
- ESRI.ArcGIS.Geoprocessing
- System.Text
