我一直在尝试加快C#中的一些新功能,而我没有机会使用的其中一个功能是匿名类型。

我了解与LINQ查询有关的用法,我看着this SO post提出了类似的问题。我在网上看到的大多数示例都与LINQ查询有关,这很酷。我也看到了一些人为的例子,但实际上并没有看到任何有值(value)的例子。

您是否对匿名类型有新颖的用法,您认为它确实为您提供了一些实用程序?

最佳答案

经过一点思考,您可以将匿名类型转换为Dictionary ; Roy Osherove在此博客他的技术:http://weblogs.asp.net/rosherove/archive/2008/03/11/turn-anonymous-types-into-idictionary-of-values.aspx

Jacob Carpenter使用匿名类型作为一种初始化不可变对象(immutable对象)的方法,其语法类似于对象初始化:http://jacobcarpenter.wordpress.com/2007/11/19/named-parameters-part-2/

匿名类型可以用作为使用foreach语句迭代的集合中的对象的属性赋予易于阅读的别名的方式。 (不过,老实说,这实际上仅是LINQ to Objects对匿名类型的标准使用而已。)例如:

Dictionary<int, string> employees = new Dictionary<int, string>
{
    { 1, "Bob" },
    { 2, "Alice" },
    { 3, "Fred" },
};

// standard iteration
foreach (var pair in employees)
    Console.WriteLine("ID: {0}, Name: {1}", pair.Key, pair.Value);

// alias Key/Value as ID/Name
foreach (var emp in employees.Select(p => new { ID = p.Key, Name = p.Value }))
    Console.WriteLine("ID: {0}, Name: {1}", emp.ID, emp.Name);

尽管此简短示例没有太大改进,但是如果foreach循环较长,则引用IDName可能会提高可读性。

关于c# - 除了LINQ查询,您如何在C#中使用匿名类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/168150/

10-12 06:49