米国の祝日の日付のリスト (日付) があります。日付が週末になるときはいつでも、金曜日または月曜日に移動する必要があります。
私は使用できることを知っています:
For i As Integer = 0 To HolidayList.Count - 1
Dim dt As Date = HolidayList(i)
If dt.DayOfWeek = DayOfWeek.Saturday Then
HolidayList(i) = dt.AddDays(-1)
End If
If dt.DayOfWeek = DayOfWeek.Sunday Then
HolidayList(i) = dt.AddDays(1)
End If
Next
しかし、私は本当にアクション、デリゲート、関数、ラムダを理解しようとしています。これらはすべて、私にはややあいまいです。私は時々それらを使用しており、それらを使用する能力を高めようとしています.
HolidayList.ForEach を使用してインライン関数/ラムダを使用して日付をインクリメント/デクリメントできますか?
Dim HolidayList As New List(Of Date)
'I have a function that creates a list of current year's holidays based on the rules
HolidayList.Add("1/1/2013")
HolidayList.Add("7/4/2013")
HolidayList.Add("12/25/2013")
'saturday holidays are moved to Fri; Sun to Mon
'something like this
'HolidayList.ForEach(action as system.action(of Date))
'HolidayList.ForEach(func(if dt.DayOfWeek = DayOfWeek.Saturday then dt = dt.AddDays(-1)))
編集: Action(Of T) Delegate と List(of T).ForEach のドキュメントをチェックアウトしましたが、すべてをまとめることはできませんでした。