zu erstellen Ich habe Folgendes erstellt, um mein Problem zu erklären.Können Sie helfen, eine Sammlung zu filtern und eine andere in linq
Gegeben eine Liste mit PayDates und Punkten. Ich muss eine neue Liste mit 1 Artikel für jeden Zeitraum erstellen, der dem Zahlungstermin am nächsten ist.
So gegeben das Beispiel der Liste 2 Artikel zurückgeben sollte „1. des Monats“ und „17. des Monats“, da sie die Nähe zu ihren paydate in ihrer Zeit
irgendwelche Vorschläge sind?
private static List<Schedule> GetFilteredScheduleList()
{
List<Schedule>oldScheduleList=new List<Schedule>();
oldScheduleList.Add(new Schedule { PayDate = new DateTime(2011, 1, 1), Id = 1, Name = "1st of the month", Period = SchedulePeriod.Monthly });
oldScheduleList.Add(new Schedule { PayDate = new DateTime(2011, 1, 4), Id = 1, Name = "4th of the month", Period = SchedulePeriod.Monthly });
oldScheduleList.Add(new Schedule { PayDate = new DateTime(2011, 1, 19), Id = 1, Name = "19th of the month", Period = SchedulePeriod.Monthly });
oldScheduleList.Add(new Schedule { PayDate = new DateTime(2012, 1, 3), Id = 1, Name = "3rd of each quarter", Period = SchedulePeriod.Quarterly });
oldScheduleList.Add(new Schedule { PayDate = new DateTime(2013, 1, 8), Id = 1, Name = "8th each quarter", Period = SchedulePeriod.Quarterly });
oldScheduleList.Add(new Schedule { PayDate = new DateTime(2011, 1, 17), Id = 1, Name = "17th of the month", Period = SchedulePeriod.Quarterly });
// Need to create a new list containing 1 item for each period that is nearest to its Pay Date.Starting point it's today's date.
// so the list should return 2 items "1st of the month" and "17th of the month" as they are the closest to their paydate in their period
List<Schedule> newScheduleList = oldScheduleList.Where(x=>x.PayDate)
}
Vielen Dank für Ihre reply.That works.What über nur die Daten innerhalb der gesetzten Frist zu vergleichen und bekommen die first.That ist, was wirklich Ich bin nach.Sorry für nicht erklären, richtig und danke für Ihre Hilfe – user9969
fantastisch alle funktioniert.THANK YOU !!! Wenn du Zeit hast, kannst du erklären, was math.abs in deiner ersten Antwort macht.Auch danke – user9969
Math.Abs gibt den absoluten Wert seines einzelnen Parameters an. Seine Logik ist wie folgt: Für einen Wert x, wenn x <0 return -x sonst Rückgabe x. Daher hat es die Wirkung, das negative Vorzeichen von negativen Zahlen zu trennen. Wir können es verwenden, um die Größe der Differenz zwischen zwei Werten zu erhalten. Zum Beispiel haben 2 und 4 eine Differenz von 2. Wir können dies wie folgt berechnen: Math.Abs (2-4) oder Math.Abs (4-2), in beiden Fällen ist die Antwort 2. – spender