C#は静的型付き言語です。クラスメンバーを動的に追加または削除することはできません。代わりに静的に型付けされたクラスの動的オブジェクトを使用すると便利かもしれませんいくつかのケースでは
var examples = new List<Example>();
var result = from e in examples
select new {
e.ExampleInt,
e.ExampleString,
e.ExampleDouble,
ExampleBoolean = true
};
:しかし、あなたはあなたが好きな性質を持つことになり、新たな匿名クラスを作成することができます。 ExpandoObjectを見てください。実行時にメンバーを動的に追加したり削除したりすることができます。しかし、あなたはパフォーマンスが低下します、インテリセンスを失うことになる、とあなたは最初から各オブジェクトを作成する必要があります:
var examples = new List<dynamic>
{
new ExpandoObject(), // initially it does not have any properties
new ExpandoObject()
};
for (int i = 0; i < examples.Count; i++)
{
examples[i].ExampleInt = i;
// etc
}
for (int i = 0; i < examples.Count; i++) // we add new property
examples[i].ExampleBoolean = i % 2 == 0;
foreach(var example in examples)
Console.WriteLine($"{example.ExampleInt} {example.ExampleBoolean}");
downvoteの場合、私は今後の質問を改善する理由を知りたいと思います。 – ipid
まあ、理由1:このコードはコンパイルされません。 – Sinatr