【发布时间】:2012-07-02 18:22:54
【问题描述】:
我正在尝试使用 LINQ 表达式从 IEnumerable 动态选择列到我可以绑定到我的 UI 的结果集中。在这一点上,我很难掌握 LINQ 表达式中投影的基础知识。
假设我有一个这样的字符串列表:
Dim myStrings = {"one", "two", "three"}.ToList()
使用 lambda 表达式,我可以通过以下方式轻松选择字符串长度的集合:
Dim myStringLengths = myStrings.Select(Function(x) x.Length)
这个语句的结果会给我留下一个名为 myStringLengths 的集合,其中包含元素 3, 3, 5。
我似乎无法弄清楚如何使用 LINQ 表达式产生等效结果。
编辑:当我说 LINQ 表达式时,我指的是在 System.Linq.Expressions 命名空间中使用 API,而不是 LINQ 语句或 lambda 表达式的标准形式。正如您在上面清楚地看到的那样,我已经熟悉如何以这种方式生成投影。
非常感谢任何帮助。
【问题讨论】:
-
Dynamic Linq 允许您在运行时选择列。
-
我不希望使用字符串来构建我的表达式。
-
你想要构建的表达式是什么?
-
@Hogan:
select { list of fields chosen at runtime } -
这里有一些可能的线索:blogs.msdn.com/b/meek/archive/2008/04/25/…
标签: .net linq linq-expressions