@andoral

Как с помощью LINQ посчитать количество подходящих объектов?

Есть массив Person[]
Person:
class Person
{
    public string Name {get; set;}
    public DateTime BirthDate {get; set:}
}

Нужно отфильтровать массив по Name и получить массив int[] с количеством рожденных в один день.
Пример: фильтр - Вася. Дни рождения Вась - 21.12.90, 21.05.95, 23.10.42
На выходе из person[] должны получить int[] { 2, 1 }
  • Вопрос задан
  • 975 просмотров
Решения вопроса 1
arxont
@arxont
C# программист
var persons = new[]
{
    new { Name = "Юрий Васильевич Кондратюк",    BirthDate = new DateTime(1897, 06,  9) },
    new { Name = "Михаил Фёдорович Решетнёв",    BirthDate = new DateTime(1924, 11, 10) },
    new { Name = "Михаил Тимофеевич Калашников", BirthDate = new DateTime(1919, 11, 10) },
    new { Name = "Сергей Павлович Королёв",      BirthDate = new DateTime(1907,  1, 12) },
    new { Name = "Михаил Васильевич Ломоносов",  BirthDate = new DateTime(1711, 11,  8) }
};

int[] arr = persons.Where(n => n.Name.Contains("Михаил"))
                   .GroupBy(day => day.BirthDate.Day)
                   .Select(count => count.Count())
                   .ToArray();        

Array.ForEach(arr, Console.WriteLine);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы