0
//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 下注有谁能帮助我?

4

1 回答 1

0

您的问题的答案依赖于匿名类型。以下代码是您可以使用的:

var result = list.AsQueryable().Cast<Info>().Select(x => new
    {
        AccountId = x.AccountId,
        Name = x.Name
    });

在 select 语句中 new 关键字后面的括号之间,您正在创建一个匿名类型,该类型将具有两个隐式类型的只读字段(AccountId 和 Name)。希望这可以帮助!

我想从链接的(没有双关语的)文章中发布这个引用:

匿名类型通常用于查询表达式的 select 子句,以返回源序列中每个对象的属性子集。有关查询的详细信息,请参阅LINQ 查询表达式(C# 编程指南)

于 2013-06-26T12:15:08.873 回答