2016-06-22 3 views
0

私はオブジェクトを作成し、それらをうまく描画するループを持っていますが、私が理解できないことはAddRange {param1、param2、param3など}に渡す方法ですに}?C#ループからコレクションへオブジェクトを渡す方法

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

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


Alternativly、あなたは、単一のAdd()通話であなたのforeachループ内で、既にこれらのパラメータを追加することができますか?あなたはループの中でAddをすることができます。 – Clint

答えて

1

あなたは、単にDictionaryValuesプロパティとToArray()を使用してそれらを追加することができますValuesDictionaryのプロパティで、その中に値(パラメータ)のコレクションを提供します。Dictionary

ToArray()拡張メソッドを使用すると、このコレクションを配列Parameter[]AddRange)に変換できます。 AddRangeでなぜわざわざ

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

の取得エラー - 引数1: 'DevExpress.XtraReports.Parameters.Parameter' と 「辞書<文字列に 'System.Collections.Generic.Dictionary <文字列、DevExpress.XtraReports.Parameters.Parameter>' から変換することはできません、パラメータ> .ValueCollection 'に' ToArray 'の定義がなく、' Dictionary .ValueCollection '型の最初の引数を受け入れる拡張メソッド' ToArray 'がありません(usingディレクティブまたはアセンブリ – user2224135

+0

@ user2224135答えを更新しました、インデックスを逃しました –

+0

インデックスが最初の行を修正しました、それはparam.Valuesのようなものではありません。 "AddArangeのToArray()" – user2224135

0
あなたが値をリストにキャストして、範囲を追加使用することができます

Parameters.AddRange(param.Values.ToList()) 
関連する問題