gpt4 book ai didi

c# - 除了 LINQ 查询,您如何在 C# 中使用匿名类型?

转载 作者:太空狗 更新时间:2023-10-29 22:07:06 26 4
gpt4 key购买 nike

我一直在尝试快速了解 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com