c# - 匿名类的通用列表

标签 c# .net generics anonymous-types

在 C# 3.0 中,您可以使用以下语法创建匿名类

var o = new { Id = 1, Name = "Foo" };

有没有办法将这些匿名类添加到通用列表中?

例子:

var o = new { Id = 1, Name = "Foo" };
var o1 = new { Id = 2, Name = "Bar" };

List<var> list = new List<var>();
list.Add(o);
list.Add(o1);

另一个例子:

List<var> list = new List<var>();

while (....)
{
    ....
    list.Add(new {Id = x, Name = y});
    ....
}

最佳答案

你可以这样做:

var list = new[] { o, o1 }.ToList();

有很多方法可以为这只猫蒙皮,但基本上它们都会在某处使用类型推断 - 这意味着您必须调用通用方法(可能作为扩展方法)。另一个例子可能是:

public static List<T> CreateList<T>(params T[] elements)
{
     return new List<T>(elements);
}

var list = CreateList(o, o1);

你明白了:)

关于c# - 匿名类的通用列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/612689/

相关文章:

c# - 如何修复 System.Data.SqlClient.SqlException : Login failed for user

c# - 如何使用 EF 4.x DbContext 生成器获取属性更改通知

.net - 在查询中多次使用相关实体

.net - GitHub sha 不一样

c# - 关于 c# 接口(interface)和泛型的问题

typescript 如何测试两个泛型是否等效?

c# - 使用 SSL 通过 .Net DirectoryServices 连接到 LDAP

c# - 按照添加顺序访问 DataGridView 行

c# - 通过比较返回 lambda 表达式的扩展方法

java - 如何按类型动态创建通用的 lambda 实现?