【问题标题】:Dynamic Linq select statement动态 Linq 选择语句
【发布时间】:2013-12-27 06:05:27
【问题描述】:

我有这样的声明 =

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
        ...
    };

谢谢!

【问题讨论】:

  • columnList 是什么类型?

标签: c# .net linq select dynamic


【解决方案1】:

这样的事情应该可以工作:

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();
             )

【讨论】:

    【解决方案2】:

    如果 columnList 可以强制转换或转换为 List,则可以使用 ForEach 方法。

    【讨论】:

      猜你喜欢
      • 2017-09-25
      • 1970-01-01
      • 2015-02-22
      • 2012-01-12
      • 1970-01-01
      • 2014-11-27
      • 2020-01-19
      • 2022-07-29
      • 1970-01-01
      相关资源
      最近更新 更多