ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

acer ado.net amd asp.net c sharp c# cms css exceptions google html ipad iphone it бизнес javascript jquery linq microsoft mysql net nokia nokia lumia samsung seo silverlight sql surface tsql windows 8 windows blue windows phone windows rt xna безопасность библиотека вопросы на собеседовании интересные проекты интернет интернет магазин исключения книга книги компьютерная безопасность компьютерные игры контролы логированние исключений мобильные приложения монетизация сайтов наушники новости новости it новости microsoft новости интернет новости технологий ноутбук ноутбуки обработка исключений оптимизация острова периферия планшет планшеты поддержка сайтов поисковое продвижение программы продвижение продвижение сайта продвижение сайтов рабство разработка игр разработка сайтов раскрутка сайта рекламные технологии смартфон смартфоны собеседование создание сайтов средства разработки туризм фриланс хостинг яндекс
  << Предыдущий пост       Следующий пост >>  
От: peerAt
22. сентября 2011 16:44
А сейчас мы расскажем как поделить последовательность на маленькие последовательности/серии и выполнить над ними запрос. И все это используя LINQ.
Мы сгенерируем последовательность. Потом поделим ее на группы по 10 элементов. И наконец, найдес максимальный и минимальный элемент в каждой группе. Для этого используем следующий код:
static void Main(string[] args)
{
var sequence = Enumerable.Range(200, 200).Select(x => x / 10f);

var grps = from x in sequence.Select((i, j) => new { i, Grp = j / 10 })
group x.i by x.Grp into y
select new { Min = y.Min(), Max = y.Max() };

foreach(var grp in grps)
Console.WriteLine("Min: " + grp.Min + " Max:" + grp.Max);
Console.ReadLine();
}
Запрос написанный выше создает первую проекцию каждого элемента последовательности в группы по 10. Результаты оформляются в enumerable collection анонимных объектов со свойствами Min и Max.

Это перевод. Оригинал здесь.

Статья сделана при поддержке weeqoney.ru - финансовый портал "Журнал Финанс"

Как зарегистрироваться в аське бесплатно без электронной почты?

Похожие записи


Вопросы на собеседовании C#, Net, ASP.NET, SQL
Продолжая тему вопросов на собеседовании. Нашел еще одну подборку. Оригинал лежит здесь . Перенес, чтобы не затерялось. Есть вполне вменяемые ответы (хотя, на некоторые вопросы ответил бы по-другому). Ответы находятся после списка вопросов, я их не менял. 23. Что такое шаблон проектирования Model/View/Controller? Как и зачем его применяют? 2...

Способы заработка на сайте
На этом блоге было много постов про производство и раскрутку сайтов. Но пока не было про заработок на них. Пора исправить этот недочет. Здесь будут описаны по возможности не фантастичные, и не супер низко прибыльные способы. Также упор будет сделан именно на организацию процесса, а не технических деталях, которых в обилии в интернете. Несмотря на то, что как пр...

Silverlight, HTML5 и непрозрачная стратегия развития Microsoft
Оригинал статьи взят отсюда: Silverlight, HTML5 и непрозрачная стратегия развития Microsoft Автор: Peter Bright Переводчик: Mairon     По непонятным мне на данный момент причинам, похоже, что многие разработчики, присутствовавшие на недавней конференции PDC-2010 (Крупнейшая конференция Microsoft для разработчиков — Прим. переводчика), были сильн...

Комментарии

 
4aIIaeB 10.03.2012 18:03:27 #


var sequence = Enumerable.Range(200, 200).Select(x => x / 10f);
- это создает обычную последовательность чисел с плавающей точкой от 20.0 до 39.9

sequence.Select((i, j) => new { i, Grp = j / 10 })
- это создает из нее последовательность пар <число, номер группы>
  
причем ! во-первых, группа здесь показывает номер в десятке,
а во-вторых номер группы j / 10 целочисленный, так как он равен номеру позиции числа, деленному на целое,

Но !!! почему i в данном случае просто плавающее значение из последовательности, а j - целый порядковый номер ???

Это ведь из синтаксиса никак не следует !!! Это черная магия LINQ. Она разрывает мне мозг...



4aIIaeB 10.03.2012 18:07:00 #


причем написать sequence.Select((i, j, k) => new { i, Grp = j / 10, grp2 = k/30 }) уже нельзя ...

Добавить комментарий




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий