2016-06-22 42 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

爲什麼用的AddRange煩惱呢?你可以在循環中做Add。 – Clint

回答

1

你可以簡單地通過使用DictionaryValues財產和ToArray()添加它們ValuesDictionary的一個屬性,它爲您提供中的值(參數)的集合。

使用ToArray()擴展方法,您可以將此集合轉換爲數組(Parameter[]),這是AddRange所期望的。


Alternativly,你可能已經在你的foreach循環內單Add()電話添加這些參數:

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:不能從 'System.Collections.Generic.Dictionary <串,DevExpress.XtraReports.Parameters.Parameter>' 轉換爲 'DevExpress.XtraReports.Parameters.Parameter' 和 「詞典<字符串,參數> .ValueCollection'不包含'ToArray'的定義,並且沒有找到接受類型'Dictionary .ValueCollection'的第一個參數的擴展方法'ToArray'(您是否缺少using指令或程序集參考?) – user2224135

+0

@ user2224135更新了答案,錯過了索引 –

+0

索引修正了第一行,它只是不喜歡param.Values。「ToArray()」在AddRange – user2224135

0

你可以投列出的值,然後使用添加範圍,

Parameters.AddRange(param.Values.ToList()) 
相關問題