LINQ в win32 DELPHI - PullRequest
       18

LINQ в win32 DELPHI

11 голосов
/ 04 января 2009

Возможно ли использовать LINQ в приложениях win32 DELPHI

Ответы [ 3 ]

16 голосов
/ 04 января 2009

Delphi 2009 имеет универсальные , помощники класса и анонимный метод поддержка, но не лямбда , методы расширения или вывод типа . Лямбда-выражения, вероятно, появятся в будущей версии Delphi, но их пока нет в официальной дорожной карте (надеюсь, скоро появится новая). Также Delphi для Win32 не имеет доступа ко всем библиотекам LINQ.

Так что короткий ответ - НЕТ, вы не можете использовать LINQ в Win32 Delphi. Однако вы можете делать некоторые подобные вещи, и технически вы можете даже получить доступ к LINQ через COM (как вы можете с любыми классами .NET), но это было бы своего рода победой без классного синтаксиса LINQ.

LINQ - это действительно технология .NET. Хотя Delphi, скорее всего, разработает языковые функции, которые делают возможным использование LINQ, базовые библиотеки .NET предназначены только для разработки .NET.

Я бы предложил использовать RemObject Data Abstract или аналогичный.

3 голосов
/ 04 января 2009

Да и нет. LINQ действительно можно рассматривать как два разных элемента.

Первый - это SQL-подобный синтаксис запроса. Это то, что позволяет вам написать следующее в C #.

var query = from it in "foobar" select Char.ToUpper(it);

Чтобы Delphi использовал эту версию LINQ, необходимо добавить поддержку явного синтаксиса. AFAIK это не существует.

Тем не менее, все запросы LINQ переводятся в набор выражений запросов. Они обычно включают в себя интенсивное использование лямбда-выражений и замыканий. Приведенный выше код эквивалентен следующей версии синтаксиса, отличного от SQL.

var query = "foobar".Select(x => Char.ToUpper(x));

Я не знаю уровень поддержки лямбды или делегата в Delphi, но должен быть доступ к LINQ в этом методе из Delphi.

1 голос
/ 26 июня 2011

Я не знаю, в какой версии Delphi он появился, но в XE у нас есть «объектные функции», которые можно создавать как замыкания или почти равные лямбда-выражения.

Таким образом, на сегодняшний день (26.06.2011) около возможно иметь LINQ-подобные выражения в Delphi (2-я форма).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...