Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

Сравнение DateTime через LINQ

#c_sharp #linq


Стыдно, знаю. Не нагуглил. Как вывести всех людей, у которых ДР меньше чем в переменной
defaultDateTimes? Через LINQ

public class Person1
{
    public string Name;
    public DateTime Birthday;
}

class Program
{
  static void Main(string[] args)
  {
    DateTime defaultDateTimes = new DateTime(2000,1,1);

    var people = new List();
    var p1 = new Person1() { Name = "Leslie", Birthday = new DateTime(1983, 9, 4) };
    var p2 = new Person1() { Name = "Chris", Birthday = new DateTime(2001, 6, 19) };
    var p3 = new Person1() { Name = "JP", Birthday = new DateTime(1983, 4, 5) };
  }
}

    


Ответы

Ответ 1



Например, так: DateTime defaultDateTimes = new DateTime(2000, 1, 1); var people = new List() { new Person1() { Name = "Leslie", Birthday = new DateTime(1983, 9, 4) }, new Person1() { Name = "Chris", Birthday = new DateTime(2001, 6, 19) }, new Person1() { Name = "JP", Birthday = new DateTime(1983, 4, 5) } }; var filteredPeople = people.Where(p => p.Birthday < defaultDateTimes); foreach (var p in filteredPeople) Console.WriteLine(p.Name); LINQ предназначено для преобразования данных. Оно умеет, например, отбирать данные из списка (как в вашем случае людей) и преобразовывать их. Выполнять действия с данными (например, вывести имя человека) LINQ не умеет (да и не предназначено для этого). Поэтому в вашей задаче фильтрация данных — дело LINQ, а для вывода нужно использовать обыкновенный цикл foreach.

Комментариев нет:

Отправить комментарий