
###前提・実現したいこと
xmlファイルからデータを読み取り、xmlファイルの階層ごとにXmlAttributeの名前のキー値を設定したい。
###該当のソースコード
xmlファイル
<?xml version="1.0" encoding="shift-jis"?> <A> <B NAME="foo"> <C>foofoo</C> </B> <B NAME="bar"> <C>foobar</C> </B> </A>
public class class01 { void main() { XmlSerializer serializer; using (FileStream file = new FileStream(@".\config.config", FileMode.Open)) { serializer = new XmlSerializer(typeof(Setting)); A a = (A)serializer.Deserialize(file); /*ここまでxml読み取り処理*/ } } } [XmlRoot("A")] public class A { [XmlElement("B")] public List<B> b{ get; set; } } [XmlRoot("B")] public class B { [XmlAttribute("Name")] public String Name { get; set; } [XmlElement("C")] public String c { get; set; } }
やりたいことは a.b["foo"].c/*foofoo*/ という参照方法にしたいです。 現状Listにしていたりしているのでできないと思いますが変更してできるようにしたいです。 datatableのようにキー名を入力がしたいです。 DataTable a = new DataTable(); a.Columns["A"];/*←みたいな感じ*/
###検索したこと
連想配列というのに行き着きましたが少し違うのかなと思いました。
正しい理解をしていないだけかもしれませんが。。。
###補足情報(言語/FW/ツール等のバージョンなど)
C#
.net framework 4.6.1
visual studio 2017