Re: LINQ только для РСУБД!
От: Константин Л. Франция  
Дата: 30.11.09 16:59
Оценка:
Здравствуйте, Gaperton, Вы писали:

[]

Не позорься.

Типичное применение Linq:

var doc = XDocument.Load(xmlReader);
                    return doc.Descendants("mapping")
                        .Select(
                            element =>
                                new { Ext = element.Attribute("extension").Value, MimeType = element.Attribute("mimeType").Value }
                        )
                        .ToDictionary(
                            mapping =>
                                mapping.Ext
                                ,
                            mapping =>
                                mapping.MimeType
                        );
Re[2]: LINQ только для РСУБД!
От: Belsen  
Дата: 01.12.09 03:21
Оценка: +1
Здравствуйте, Константин Л., Вы писали:

КЛ>Типичное применение Linq:


КЛ>
КЛ>var doc = XDocument.Load(xmlReader);
КЛ>                    return doc.Descendants("mapping")
КЛ>                        .Select(
КЛ>                            element =>
КЛ>                                new { Ext = element.Attribute("extension").Value, MimeType = element.Attribute("mimeType").Value }
КЛ>                        )
КЛ>                        .ToDictionary(
КЛ>                            mapping =>
КЛ>                                mapping.Ext
КЛ>                                ,
КЛ>                            mapping =>
КЛ>                                mapping.MimeType
КЛ>                        );
КЛ>


Почему бы данный пример не записать сразу так:
return XDocument.Load(xmlReader).Descendants("mapping")
    .ToDictionary(e => e.Attribute("extension").Value, e => e.Attribute("mimeType").Value);
I might be wrong...
Re[3]: LINQ только для РСУБД!
От: Константин Л. Франция  
Дата: 01.12.09 08:30
Оценка: -1 :)
Здравствуйте, Belsen, Вы писали:

[]


B>Почему бы данный пример не записать сразу так:

B>
B>return XDocument.Load(xmlReader).Descendants("mapping")
B>    .ToDictionary(e => e.Attribute("extension").Value, e => e.Attribute("mimeType").Value);
B>


можно и так, с селектом красивее )
Re[23]: LINQ только для РСУБД!
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.12.09 23:14
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Вместо подписки на сообщения у нас будут каналы


Observable это не совсем "подписка на сообщения", это continuation monad.
... << RSDN@Home 1.2.0 alpha 4 rev. 1324 on Windows 7 6.1.7600.0>>
AVK Blog
Re[29]: LINQ только для РСУБД!
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.12.09 23:14
Оценка:
Здравствуйте, IT, Вы писали:

IT>Иерархии обрабатываются рекурсивными алгоритмами. В C# сегодня это либо члены класса, но для этого нужно состояние либо выносить в класс, либо городить огород из длинного списка параметров. Либо эмулировать локальные функции делегатами, вроде этого:


Либо сделать набор итераторов, обходящих дерево наиболее общеупотребимыми способами. А дальше обычный LINQ.
На практике получается вполне употребимо.
... << RSDN@Home 1.2.0 alpha 4 rev. 1324 on Windows 7 6.1.7600.0>>
AVK Blog
Re[29]: опечатка
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.12.09 23:14
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>>относительно XML...


ГВ>относительно иерархических данных...


Относительно XML в LINQ2XML уже есть набор готовых итераторов по дереву, так что особых проблем с его обработкой не возникает.
... << RSDN@Home 1.2.0 alpha 4 rev. 1324 on Windows 7 6.1.7600.0>>
AVK Blog
Re[18]: Я всё ж таки вот, о чём думаю
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.12.09 23:30
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Ты совершенно правильно все сделал. Неотъемлемое свойство, и слабое место реляционной модели (превращается в силу в ряде контекстов) — отсутствие в этой модели порядка элементов. Кортежи принципиально неупорядоченны. Точка. И твой, и мои примеры с БД time series это свойство эксплуатируют.


Его пример эксплуатирует не это. Убери из него требование выкидывать уже обработанные элементы, и линк применить станет намного проще.
... << RSDN@Home 1.2.0 alpha 4 rev. 1324 on Windows 7 6.1.7600.0>>
AVK Blog
Re[19]: Я всё ж таки вот, о чём думаю
От: Gaperton http://gaperton.livejournal.com
Дата: 20.12.09 17:05
Оценка:
Здравствуйте, AndrewVK, Вы писали:

G>>Ты совершенно правильно все сделал. Неотъемлемое свойство, и слабое место реляционной модели (превращается в силу в ряде контекстов) — отсутствие в этой модели порядка элементов. Кортежи принципиально неупорядоченны. Точка. И твой, и мои примеры с БД time series это свойство эксплуатируют.


AVK>Его пример эксплуатирует не это. Убери из него требование выкидывать уже обработанные элементы, и линк применить станет намного проще.


Его пример эксплуатирует именно это. Если ты, как ты предлагаешь, уберешь требование выкидывать уже обработанные элементы, то ты уберешь из алгоритма завязку на порядок элементов, и именно по этой причине (естественно) применять линк станет намного проще. А не почему-нибудь еще.
Re[24]: LINQ только для РСУБД!
От: Gaperton http://gaperton.livejournal.com
Дата: 20.12.09 17:05
Оценка:
Здравствуйте, AndrewVK, Вы писали:

G>>Вместо подписки на сообщения у нас будут каналы


AVK>Observable это не совсем "подписка на сообщения", это continuation monad.


Вау.
Re[20]: Я всё ж таки вот, о чём думаю
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 20.12.09 18:39
Оценка: 1 (1)
Здравствуйте, Gaperton, Вы писали:

G>Его пример эксплуатирует именно это. Если ты, как ты предлагаешь, уберешь требование выкидывать уже обработанные элементы, то ты уберешь из алгоритма завязку на порядок элементов


Совсем нет. Убирается требование к хранению стейта. С сохранением порядка у линка никаких проблем нет, это не РСУБД.
... << RSDN@Home 1.2.0 alpha 4 rev. 1324 on Windows 7 6.1.7600.0>>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.