這種匿名類型如何在現實生活中有用?爲什麼它是好的?匿名類型,什麼時候有用?
// sampleObject is an instance of a simple anonymous type.
var sampleObject =
new { FirstProperty = "A", SecondProperty = "B" };
這種匿名類型如何在現實生活中有用?爲什麼它是好的?匿名類型,什麼時候有用?
// sampleObject is an instance of a simple anonymous type.
var sampleObject =
new { FirstProperty = "A", SecondProperty = "B" };
通常,當您使用匿名類型初始化變量,您變量聲明爲通過使用VAR的隱式類型的局部變量。類型名稱不能在變量聲明中指定,因爲只有編譯器可以訪問匿名類型的基礎名稱。有關var的更多信息,請參見Implicitly Typed Local Variables (C# Programming Guide)。
從MSDN Anonymous Types (C# Programming Guide):
匿名類型典型地查詢 表達的選擇子句中用於從每一個對象中 源序列返回的屬性的子集。
...
最常見的情況是從其他類型 屬性初始化匿名類型。
有關其他信息,請參閱Anonymous Types in Query Expressions。
另外,還要考慮讀SO What is the purpose of anonymous types?
考慮從How to: Join by Using Composite Keys (C# Programming Guide)一個例子:
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 };
這個例子說明如何進行加盟要在其中操作 使用一個以上的關鍵定義一個匹配。這是通過使用 複合鍵來完成的。您創建一個複合鍵作爲匿名類型或 命名鍵入您想要比較的值。
而使用匿名類型進行分組達拉封裝包含來自Group by Multiple Columns using Anonymous Types in 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 };
或尤爲明顯How to: Group Query Results (C# Programming Guide):
匿名類型因爲沒有必要使用完整對象來顯示結果
請注意,匿名類型的屬性成爲Key成員 上的屬性,並且可以在執行查詢時按名稱訪問。
閱讀[查詢表達式中的匿名類型](http://blogs.msdn.com/b/charlie/archive/2007/09/26/choosing-not-to-use-anonymous-types-in- query-expressions.aspx) – horgh
匿名意味着hte block不會有名字,一旦它有一個名字,它可以被多個線程按預期或意外的方式訪問。您仍然可以通過new訪問具有返回對象的成員。 –
@BéCuSữa3你的意思是「類型」是什麼「塊」?而匿名類型與線程無關。另外,我不知道你最後一句話的含義。 – svick