0

私は基本的に値を配列に保存してロードし、JSON ライブラリにフィードしています。これを行うためのよりエレガントな方法を探しています。

配列へのクラス プロパティ

 return new object[] { path, pathDir, name };

配列からクラス プロパティへ

c.path = values[0];
c.pathDir = values[1];
c.name = values[2];

リフレクションなどの追加の実行時間オーバーヘッドを理想的に必要としない単純なソリューションが高く評価されます。

このようなことはできますか?

  c.{path, pathDir, name} = values[0...2]

編集:特に配列を求めています。シリアライゼーション、JSON、Protobuf、および他のすべての人が提案していることについて知っています。

4

1 に答える 1

1

これでうまくいきませんか?

return  new {path= "/Some/Path", pathDir= "SiteRoot", name="MyPath"}

編集:

 //Mock function to simulate creating 5 objects with 'CreateArrayOb' function
        public void CreatingObjects()
        {
            var lst = new List<object>();
            for (var x = 0; x < 5; x++)
            {
                lst.Add(CreateArrayOb(new string[] {"Path" + x, "Dir" + x, "Path" + x}));
            }
        }
        public object CreateArrayOb(object[] vals)
        {
            if (vals != null && vals.Any())
            {
                //Switch cases in the event that you would like to alter the object type returned
                //based on the number of parameters sent
                switch (vals.Count())
                {
                    case 0:
                        break;
                    case 1:
                        break;
                    case 2:
                        break;
                    case 3:
                        return new { path = vals.ElementAt(0), pathDir = vals.ElementAt(1), name = vals.ElementAt(2) };
                }

            }
            return null;
        }
于 2012-12-03T15:21:47.267 に答える