C# 3.0からは匿名型が作成できるようになっています。
作り方は以下のようにします。
var anonymousType = new{ プロパティ1=xxxx, プロパティ2=xxxx ......};
指定できるのは、プロパティのみとなります。
また、匿名の型のインスタンスとなりますので、必ずvarで宣言する必要があります。
一旦インスタンス化した後は、他のインスタンスと同じように扱えます。
また、匿名型を作成しても、内部で宣言したプロパティが同じ場合は同じTypeのインスタンス
となります。
つまり、
var anonType1 = new{ Name="gsf_zero1", Age=28 };
と
var anonType2 = new{ Name="gsf_zero2", Age=30 };
の場合、2つのオブジェクトは同じTypeとなります。
以下、サンプルです。
// vim:set ts=4 sw=4 et ws is nowrap ft=cs: using System; namespace Gsf.Samples.Tmp{ public class AnonymousTypeSample : IExecutor{ public void Execute(){ // // 匿名型を作成する。 // var anonType1 = new{ Name="gsf_zero1", Age=28 }; Console.WriteLine("Name={0}, Age={1}", anonType1.Name, anonType1.Age); // // 匿名型の実際の型名称を表示. // Console.WriteLine(anonType1.GetType().Name); // // 同じプロパティ名を持つ別の匿名型を作成する。 // var anonType2 = new{ Name="gsf_zero2", Age=30 }; Console.WriteLine("Name={0}, Age={1}", anonType2.Name, anonType2.Age); // // 2つ目の匿名型の型名称を表示. // Console.WriteLine(anonType2.GetType().Name); // // 別々に作成した匿名型でも、プロパティが同じ場合は同じ型のインスタンスとなるかどうか? // Console.WriteLine(anonType1.GetType() == anonType2.GetType()); } } }