2016-06-22 12 views
0

Ich habe eine Schleife, die Objekte erstellt und sie auszeichnet, aber was ich nicht herausfinden kann ist, wie ich es in AddRange {param1, param2, param3, und so weiter auf}?C# Wie Objekte von der Schleife zur Sammlung übergeben werden

Dictionary<String, Parameter> param = new Dictionary<String, Parameter>();   
foreach (string parameterName in myParams) 
{         
    param[parameterName] = new parameter();      
    param[parameterName].Description = parameterName; 
} 
Parameters.AddRange(new Parameter[] {"param[parameterName],param[parameterName],..and so on"}); 
+6

warum die Mühe mit AddRange:


Alternativly, können Sie diese Parameter bereits in Ihrem foreach Schleife mit einzelnen Add() Anrufe hinzufügen? Sie könnten einfach in der Schleife hinzufügen. – Clint

Antwort

1

Sie können sie einfach hinzufügen, indem Sie die Dictionary ‚s Values Eigenschaft verwenden und ToArray():

Parameters.AddRange(param.Values.ToArray()); 

Values ist eine Eigenschaft von Dictionary, die Ihnen die Sammlung von Werten (Parametern) in diesemgibt.

Mit der Erweiterungsmethode ToArray() können Sie diese Sammlung in ein Array (Parameter[]) konvertieren, was AddRange erwartet.

Dictionary<String, Parameter> param = new Dictionary<String, Parameter>();   
foreach (string parameterName in myParams) 
{         
    param[parameterName] = new parameter();      
    param[parameterName].Description = parameterName; 
    Parameters.Add(param[parameterName]); 
} 
+0

Erste Error- Argument 1: Konvertierung von 'System.Collections.Generic.Dictionary ' auf 'DevExpress.XtraReports.Parameters.Parameter' und ‚Dictionary .ValueCollection 'enthält keine Definition für' ToArray 'und keine Erweiterungsmethode' ToArray ', die ein erstes Argument vom Typ' Dictionary .ValueCollection 'akzeptiert (fehlt eine using-Direktive oder eine Assembly) Referenz?) – user2224135

+0

@ user2224135 aktualisiert die Antwort, verpasste den Index –

+0

Index behoben die erste Zeile, es mag einfach nicht param.Values. "ToArray()" in AddRange – user2224135

0

Sie die Werte zur Liste werfen und fügen Sie dann Bereich verwenden,

Parameters.AddRange(param.Values.ToList()) 
Verwandte Themen