Я пытаюсь использовать выражения LINQ для динамического выбора столбцов из IEnumerable
в результирующий набор, который я могу привязать к своему пользовательскому интерфейсу. В этот момент мне трудно усвоить основы проектирования в выражениях LINQ.Выбор столбцов в LINQ с использованием System.Linq.Expressions API
Скажем, у меня есть список строк, например, так:
Dim myStrings = {"one", "two", "three"}.ToList()
Использование лямбда-выражения можно легко выбрать из коллекции длины строки, выполнив:
Dim myStringLengths = myStrings.Select(Function(x) x.Length)
В результате этого заявления оставил бы меня с коллекцией под названием myStringLengths
, имеющей элементы 3, 3, 5
.
Что я могу не понять, так это то, как я могу произвести эквивалентный результат, используя выражение LINQ.
Edit: Когда я говорю выражение LINQ, я говорю об использовании API в System.Linq.Expressions
пространстве имен, а не стандартную форму выражения Постулаты или лямбда LINQ. Как вы можете ясно видеть выше, я уже знаком с тем, как генерировать проекцию таким образом.
Любая помощь очень ценится.
[Dynamic Linq] (http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query -library.aspx) позволяет выбирать столбцы во время выполнения. –
Я бы предпочел не строить свои выражения, используя строки. – mclark1129
Какое выражение вы хотите построить? – Hogan