我有以下Linq查询:
var dis = productsWhole
.SelectMany(p => p.CustomerPricing).ToList();
这允许foreach访问productsWhole.CustomerPricing List中的每个项目。
productsWhole ienumerable还包含一个String字段ProductCode是否有一种方法可以在不使用select new匿名类型的情况下将两者结合起来?
答案 0 :(得分:1)
如果它是你关注的匿名类型部分(我假设你想从一个方法或类似的东西中返回它),要么投射到一个已知类型(例如Tuple作为测试建议)或者预先定义的类型(例如您自己的结构或类),例如:
internal class ProductProjection
{
internal CustomerPricing CustomerPricing { get; set; }
internal string ProductCode { get; set; }
}
然后做:
var dis = productsWhole
.SelectMany(p => new ProductProjection { CustomerPricing = p.CustomerPricing, ProductCode = p.ProductCode }).ToList();
dis
将成为List<ProductProjection>
答案 1 :(得分:1)
投标到Tuple
的正确方法是@test建议使用支持其他resultSelector
的{{3}}
var dis = productsWhole
.SelectMany(p => p.CustomerPricing, (p, cp) => Tuple.Create(p.ProductCode, cp))
.ToList();