c# - 动态 Linq select 语句

标签 c# .net linq select dynamic

我有这样的声明=

var result =
    from c in displayedUsers
    select
    new string[]
    {
        c.GetType().GetProperty(columnList[0]).GetValue(c, null).ToString(),
        c.GetType().GetProperty(columnList[1]).GetValue(c, null).ToString(),
        c.GetType().GetProperty(columnList[2]).GetValue(c, null).ToString(),
        c.GetType().GetProperty(columnList[3]).GetValue(c, null).ToString()
    };

我想知道的是是否可以不必具有静态列表长度(在本例中您可以看到只有 4 个项目)

如果“columnList”数组中有 N 列,我该如何执行此操作?

类似于=的东西

var result =
    from c in displayedUsers
    select
    new string[]
    {
        foreach item in columnList GetValue
        ...
    };

谢谢!

最佳答案

这样的事情应该有效:

var columnList = new []{"cola", "colb"};
var result = from c in displayUsers
             select
             (
                 (
                     from col in Columnlist
                     select c.GetType().GetProperty(col).GetValue(c, null).ToString()
                 ).ToArray();
             )

关于c# - 动态 Linq select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20482337/

相关文章:

c# - 在 Azure Function 中将 BrokeredMessage 与 ServiceBus 队列触发器结合使用

c# - 使用 Ninject Autowiring

c# - 如何验证电子邮件来自ASP.NET MVC中的特定域?

.net - 从Powershell表单文本框中删除字符限制

c# - linq "let"除法,然后按升序排序

c# - LINQ ToList().Take(10) vs Take(10).ToList() 哪个生成更高效的查询

c# - 无后端 API - 创建用户

C#:如何在调用时触发事件的方法上创建属性?

Windows 手机上的 Linq

c# - 如何在 Regex 中指定匹配模式的优先级?