|
■No59981 (魔界の仮面弁士 さん) に返信 > 構造体で管理しなければダメですか? 別の方法があれば使わなくてもいいです。使い方はAzuleanさんへの返信を見てください。
> たとえば、System.Collections.Specialized.NameValueCollection クラスで管理すれば、 > // 初期定義 > foo = new NameValueCollection(); > foo.Add("ID", null); > foo.Add("Mei", null); > > // 名前指定で読み書き > foo["ID"] = EM20OLD[0].Tostring(); > foo["Mei"] = EM20OLD[1].Tostring(); > string id = foo["ID"]; > > // インデックス指定で読み書き > foo[foo.Keys[1]] = EM20OLD[1].Tostring(); > string mei = foo[1]; > のような記述が可能です。 > > > また、複数のレコードとして管理したいような場合は > System.Data.DataTable を使うのも手です。 > > > たとえば、型付 DataSet な DataTable 等で管理するようにすれば、 > row.ID = EM20OLD[0].Tostring(); > row.Name = EM20OLD[1].Tostring(); > のような書き方や、 > row["ID"] = EM20OLD[0].Tostring(); > row["Name"] = EM20OLD[1].Tostring(); > な書き方や > row[0] = EM20OLD[0].Tostring(); > row[1] = EM20OLD[1].Tostring(); > な書き方が行えるため、ループ処理もやりやすいかと思います。 > > > >>たぶん構造体にもあるだろうと、いろいろ調べているのですが > 最終手段としては、リフレクションという手もありますけれどね。 > > // using System.Reflection; > > Type t = typeof(Kozo.Busho); > FieldInfo[] f = t.GetFields(); > > object o = ss; > f[0].SetValue(o, EM20OLD[0].ToString()); > f[1].SetValue(o, EM20OLD[1].ToString()); > ss = (Kozo.Busho)o; いつもありがとうございます。早速試してみます。ありがとうございました。
|