1. ホーム
  2. c#

C#では、匿名型をキー/値の配列に変換する?

2023-07-26 01:18:43

質問

以下のような匿名型があります。

new {data1 = "test1", data2 = "sam", data3 = "bob"}

これを受け取って、キーと値のペアを配列または辞書で出力するメソッドが必要です。

私の目標は、これをHttpRequestのポストデータとして使用することなので、最終的には以下の文字列に連結することになります。

"data1=test1&data2=sam&data3=bob"

どのように解決するのですか?

これはほんのちょっとの反省で実現できます。

var a = new { data1 = "test1", data2 = "sam", data3 = "bob" };
var type = a.GetType();
var props = type.GetProperties();
var pairs = props.Select(x => x.Name + "=" + x.GetValue(a, null)).ToArray();
var result = string.Join("&", pairs);