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

Поиск

Категории

Облако тегов

  << Предыдущий пост       Следующий пост >>  
От: 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


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