做一些旧代码的重构,开发人员负责很久就离开了.
他遗赠了我的Linq:
var orders = memberOrders
.Join(members, x => x.MemberID, y => y.MemberID, (x,y) => new { Order = x , y.MemberName })
.OrderByDescending(x => x.Order.MailingDate).ToList();
Run Code Online (Sandbox Code Playgroud)
这会创建某种双值列表,其中Order对象连接到该对象的MemberName字符串.
我想要一个函数来返回它.但是,我无法弄清楚该函数需要返回的类型.
调用GetType()显示它被调用List`1,这不是非常有用.它看起来像是List<T>由编译器动态构建到自定义对象中.
它是什么,我怎么能从函数中返回它?
它返回一个具有两个属性的匿名类型列表:Order和MemberName. 从技术上讲,您可以返回匿名类型的列表(返回类型可以是object或List<dynamic>),但您需要调用者使用反射或dynamic访问属性.
它的安全创建一个新的类型(或使用现有的),并返回一个列表是代替.