1. ホーム
  2. c#

[解決済み] クラスをDictionary<string,string>に変換するにはどうしたらいいですか?

2023-05-21 11:12:53

質問

ClassをDictionary<string, string>に変換することは可能ですか?

Dictionaryでは、クラスのプロパティは次のようにしたいです。 キー とし、特定のプロパティの値を .

仮に私のクラスが

public class Location
{
    public string city { get; set; }
    public string state { get; set; }
    public string country { get; set;
}

ここで、私のデータが

city = Delhi
state = Delhi
country = India

これで、私の言いたいことが簡単に理解できるようになりましたね

辞書を作りたい! その辞書はこんな感じです。

Dictionary<string,string> dix = new Dictionary<string,string> ();
dix.add("property_name", "property_value");

値を取得することはできます! でも、どうやったらプロパティ名( 値ではない )?

それをダイナミックに作成するために何をコード化する必要がありますか?それは私が望むすべてのクラスで動作するはずです。

この質問は、次のように理解することができます。

特定のクラスからプロパティのリストを取得するにはどうすればよいですか?

さて、今回も私が辞書について熱望していることの一つを説明します。この質問は、私が作成した 前の質問 !!

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

これはレシピです。1リフレクション、1LINQ-to-Objects!

 someObject.GetType()
     .GetProperties(BindingFlags.Instance | BindingFlags.Public)
          .ToDictionary(prop => prop.Name, prop => (string)prop.GetValue(someObject, null))

この回答を公開して以来、多くの人がこの回答を有用だと感じていることを確認しました。この簡単な解決策を探しているすべての人に、私が拡張メソッドに一般化した別の Q&A を確認するよう勧めます。 オブジェクトから辞書へのマッピングとその逆