1

この匿名型は実際の状況でどのように役立つのでしょうか? 匿名であることがなぜ良いのでしょうか。

// sampleObject is an instance of a simple anonymous type.
var sampleObject = 
    new { FirstProperty = "A", SecondProperty = "B" };
4

2 に答える 2

3

MSDN匿名型 (C# プログラミング ガイド)から:

通常、匿名型はクエリ式の select 句で使用され、ソース シーケンス内の各オブジェクトからプロパティのサブセットを返します。

...

最も一般的なシナリオは、匿名型を別の型のプロパティで初期化することです。

追加情報については、クエリ式の匿名型を参照してください。

また、 SO 匿名型の目的は何ですか? を読むことを検討してください。


方法: 複合キーを使用して結合する (C# プログラミング ガイド)の例を考えてみましょう。

var query = from o in db.Orders
            from p in db.Products
            join d in db.OrderDetails
                on new { o.OrderID, p.ProductID } 
            equals new { d.OrderID, d.ProductID } 
            into details
            from d in details
            select new { o.OrderID, p.ProductID, d.UnitPrice };

この例では、複数のキーを使用して一致を定義する結合操作を実行する方法を示します。これは、複合キーを使用して実現されます。複合キーは、比較する値を持つ匿名型または名前付き型として作成します。


また、dara をグループ化するために匿名型を使用して、LINQ to SQL で匿名型を使用して複数列によるグループ化からの複数の値を含むキーをカプセル化する例:

var months = from t in db.TransactionData
             group t by new { month = t.Date.Month, year = t.Date.Year } 
                into d
             select new { t.Key.month, t.Key.year };

方法:クエリ結果をグループ化する (C# プログラミング ガイド) :

結果を表示するために完全なオブジェクトを使用する必要がないため、匿名型が使用されます。

匿名型のプロパティは Key メンバーのプロパティになり、クエリの実行時に名前でアクセスできることに注意してください。

于 2013-02-01T02:31:34.510 に答える
1

通常、匿名型を使用して変数を初期化する場合は、var を使用して変数を暗黙的に型指定されたローカル変数として宣言します。匿名型の基になる名前にアクセスできるのはコンパイラだけであるため、変数宣言で型名を指定することはできません。var の詳細については、Implicitly Typed Local Variables (C# Programming Guide)を参照してください。

于 2013-02-01T02:31:19.607 に答える