行,
之前可能已经回答过这个问题,但我不确定如何说出标题。
我有一个类,它有返回许多复合LINQ查询的方法。大多数这些查询形成匿名类型以获取我需要的数据。我发现我无法从方法返回匿名类型,所以我一直在创建子类并在查询的“选择新”部分填充它们。
有更好的方法吗?所有这些方法都返回了某种类型的IEnumerable,我真的想要保留一些东西。
谢谢!
答案 0 :(得分:1)
您可以明确地定义您作为类使用的匿名类型,而是返回这些类。
通常,如果您正在编写供其他人使用的库,则明确定义的类是最佳实践。
答案 1 :(得分:0)
或者您可以在此dp
中使用post的技巧// Useful? probably not.
private void foo()
{
var user = AnonCast(GetUserTuple(), new { Name = default(string), Badges = default(int) });
Console.WriteLine("Name: {0} Badges: {1}", user.Name, user.Badges);
}
object GetUserTuple()
{
return new { Name = "dp", Badges = 5 };
}
// Using the magic of Type Inference...
static T AnonCast<T>(object obj, T type)
{
return (T) obj;
}