2
値を持つ辞書があります。各値を動的インスタンスプロパティに割り当てる必要があります。また、動的変数のプロパティの名前は、辞書のキーと同じにする必要があります。このような 何か:辞書から動的オブジェクトへの値の代入C#
dynamic response = new ExpandoObject();
var dict = new Dictionary<string, string>();
string s;
dict.TryGetValue("Name", out s); // imagine dictionary contains some data
response.Name = s;
dict.TryGetValue("Street", out s);
response.Street = s;
....
私は、ちょうど各値を反復処理するためにいくつかのより効率的な方法があると確信しています。 forループを作成すると、毎回動的インスタンスのプロパティ名を記述する方法はありますか?ありがとうございました。あなたはExpandoObject
のプロパティにアクセスしていないので、私はここにdynamic
を使用していない
var response = new ExpandoObject();
var dict = new Dictionary<string, string>();
// imagine dict contains some data
foreach(var kvp in dict)
{
(response as IDictionary<string, object>)[kvp.Key] = kvp.Value;
}
注:それはそれはあなたがちょうどことができますので、「プロパティ」値を格納する方法を説明しますので、
タイプ「System.Dynamic.ExpandoObject」の式に[]でインデックス付けを適用できません " – OlegI
@OlegIaremchuk次のようにしてください:(IDictionary)[kvp.Key] = kvp 。値; –
@MaksimSimkin完璧。ありがとうございました – OlegI