//list is IEnumeable NOT IEnumerable<T>
var IEnumerable<object> = list.AsQueryable().Cast<object>().Select(x=> .........);
对象实际上有一个基于匿名类的POCO,例如
AccountId,Name,SecretInfo
我在select语句中想要的是
AccountId = x.GetType().GetProperty("AccountId").GetValue(x,null),
Name = x.GetType().GetProperty("Name").GetValue(x,null)
此外,我想隐藏SecretInfo列,我可以将其作为硬编码字符串“SecretInfo”传递 基本上,选择列表需要在匿名类型上动态构建.... 怎么能这样做......任何Linq都会在那里帮助我?
答案 0 :(得分:0)
您的问题的答案取决于anonymous types。您可以使用以下代码:
var result = list.AsQueryable().Cast<Info>().Select(x => new
{
AccountId = x.AccountId,
Name = x.Name
});
在select语句中跟随new关键字的括号之间,您将创建一个匿名类型,该类型将具有两个隐式类型的只读字段(AccountId和Name)。希望这有帮助!
我想从链接的(没有双关语)文章中发布这句话:
通常在查询表达式的select子句中使用匿名类型,以从源序列中的每个对象返回属性的子集。有关查询的详细信息,请参阅LINQ Query Expressions (C# Programming Guide)。