Как применить значение к списку объектов, где значение меняется каждые 7 записей в списке?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как применить значение к списку объектов, где значение меняется каждые 7 записей в списке?

Сообщение Anonymous »


У меня есть объект, для целей этого примера он довольно прост:

публичный класс DateEntry { общественная DateOnly Date {get; набор; } общественный ИНТ WeekNumber {получить; набор; } } Я получаю List из 42 экземпляров объекта DateEntry.

Поле Дата заполняется автоматически. Что мне нужно сделать, так это для каждых 7 из этих объектов мне нужно увеличить WeekNumber на 1. Это не WeekOfYear, это просто требование нашего пользовательского интерфейса. что первая неделя равна 1, вторая неделя – от 2 до 6 (точно так же, как недели, показанные в одном месяце любого календаря.)

Я знаю, что могу сделать это в циклах for, но мне бы хотелось сделать это с помощью LINQ.

У меня есть аналогичный метод, который разбивает его на список списков, каждый внутренний список содержит 7 записей. Но я действительно хочу просто изменить исходный список, чтобы WeekNumber отражал, в какой из 6 недель он находится. Я просто не мог понять, как изменить следующий метод.

публичный статический список SplitIntoWeeks (этот список? источник) { вар WeekIndex = 1; if (источник равен нулю || source.Count == 0) возвращаться []; источник возврата .Select((x, i) => new { Index = i, Value = x }) .GroupBy(x => x.Index/7) .Select(x => новые WeekOfDateEntries { Номер недели = Индекс недели++, Даты = x.Select(v => v.Date).ToList() }) .К списку(); } Ответ С небольшой поправкой ответ @harald-coppoolse оказался правильным. Мне просто нужно было поменять позицию index.
источник возврата .Select((dateEntry, index) => новая TimeEntryRecord { Дата = датаВвод.Дата, Номер недели = индекс / 7 + 1, }) .К списку();
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»