【发布时间】:2011-11-21 14:49:25
【问题描述】:
这是我的代码:
class B
{
public int age { get; set; }
public string name { get; set; }
}
class Program
{
static List<whatshouldIwritehere> GetList()
{
List<B> list = new List<B>() {
new B(){ age = 10, name = "jaagu" },
new B(){ age = 20, name = "juggu" },
new B(){ age = 30, name = "jockey" },
new B(){ age = 40, name = "jaggu" },
};
return (from item in list
select new { MyAge = item.age, MyName = item.name }).ToList();
}
static void Main(string[] args)
{
Console.Read();
}
}
谁能告诉我函数GetList()的返回类型应该写什么?我知道查询创建了一个匿名类,我想跨函数使用该类。如果我使用 MyAge 和 MyName 创建一个自定义类,那么很容易在返回类型中给出它。但是,还有其他出路吗?如果这是在同一个函数中,我会使用 var 关键字。但我不能在这里使用它。
【问题讨论】:
-
岩石和坚硬的地方。你想命名一个匿名类型。这不会发生。
-
为什么要返回匿名类型?
-
这是匿名类型的一般限制。由于它们没有命名,因此它们不能以需要主名的良好类型方式暴露在任何地方。希望链接的答案能提供一些见解。
-
@everyone:阅读 Petar Ivanov 的回答,虽然没有编译时支持,但它会完美运行。但比使用反射或创建大量“类重载”要好得多
标签: c# linq anonymous-types