我该如何在List(of Date)中使用动作或功能

D_Bester

我有一个清单(日期),上面有美国假期的日期。每当日期在周末时,都必须将其移至星期五或星期一。

我知道我可以使用:

    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

但是,我实际上是在尝试了解动作,委托,函数和lambda。这些对我来说都有些模糊。我有时使用它们,并试图提高使用它们的能力。

我可以使用内联函数/ lambda使用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)委托和List(of T).ForEach的文档,但是我无法将它们放在一起。

吉迪恩·恩格尔伯斯

在这种特殊情况下,您将无法使用该List.ForEach方法(或任一For Each循环)执行所需的操作。问题在于您的列表存储的是日期类型,即值类型。这意味着您将传递给ForEach的Action的参数(或For Each循环的循环变量)是值的副本,因此在委托调用(或循环迭代)结束时丢失的任何新值都会丢失)。这给您两个选择。或者是标准的For循环(对于HolidayList.Count-1,i = 0),以便可以将其分配回循环中的列表,也可以在不修改旧列表的情况下构建新列表。(然后,可以根据需要完全替换旧列表。)后一个选项可能类似于:

Dim allWeekday = From h in HolidayList
                 Select If(h.DayOfWeek = DayOfWeek.Saturday,
                           h.AddDays(-1),
                           If(h.DayOfWeek = DayOfWeek.Sunday,
                              h.AddDays(1),
                              h))

或使用替代语法而不是LINQ:

Dim allWeekday = HolidayList.Select(
                    Function (h)
                        If h.DayOfWeek = DayOfWeek.Saturday Then
                            Return h.AddDays(-1)
                        Else If h.DayOfWeek = DayOfWeek.Sunday Then
                            Return h.AddDays(1)
                        Else
                            Return h
                        End If
                    End Function)

在这两个版本,allWeekdayIEnumerable(Of Date),你可以转换为List(Of Date)ToList()如果需要的话。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Yii2 Basic-我如何在yii2动作中使用通用功能

来自分类Dev

我该如何在webpack中使用moment-timezone?

来自分类Dev

我该如何在mustache.js中使用if值?

来自分类Dev

如何在SceneKit Editor中使用动作

来自分类Dev

如何在github动作中使用mstest?

来自分类Dev

我如何在bash中使该PHP行等效?

来自分类Dev

如果我在动作定义中使用异步任务,那么该动作应该与异步相关吗?

来自分类Dev

我如何在方法中使用 (WebElement webdriverWait until element is clickable) 并调用该方法以重新使用

来自分类Dev

如何在我的网站中使用Chrome扩展功能(NaCl)?

来自分类Dev

如何在我的网站中使用Chrome扩展功能(NaCl)?

来自分类Dev

如何在我的日历维度中使用 OBIEE 的预测功能?

来自分类Dev

我该如何在Javascript中使用[硬编码编号]。[函数调用]?

来自分类Dev

我该如何在Typeorm和Postgres中使用经度和纬度

来自分类Dev

我该如何在Javascript中使用[硬编码编号]。[函数调用]?

来自分类Dev

我该如何在窗体中使用window.confirm对话框?

来自分类Dev

我如何在vuex中的动作对象中使用异步和等待?

来自分类Dev

我如何在 switch case 中使用字符串作为动作?

来自分类Dev

如何在Xamarin和MvvmCross中使用动作栏

来自分类Dev

我该如何使用CTE

来自分类Dev

我该如何写一个简单的示例,说明如何在Swift 5中使用委托

来自分类Dev

我该如何在JavaScript中实现功能乘法(2)(3)(5)

来自分类Dev

如何在Jquery中使用功能?

来自分类Dev

如何在gnuplot中使用Floor功能

来自分类Dev

如何在功能中使用地图

来自分类Dev

如何在R中使用子功能

来自分类Dev

如何在功能中使用多重处理?

来自分类Dev

如何在Nano中使用撤消功能?

来自分类Dev

如何在VBA中使用“包含”功能?

来自分类Dev

如何在功能组件中使用PanResponder?

Related 相关文章

  1. 1

    Yii2 Basic-我如何在yii2动作中使用通用功能

  2. 2

    我该如何在webpack中使用moment-timezone?

  3. 3

    我该如何在mustache.js中使用if值?

  4. 4

    如何在SceneKit Editor中使用动作

  5. 5

    如何在github动作中使用mstest?

  6. 6

    我如何在bash中使该PHP行等效?

  7. 7

    如果我在动作定义中使用异步任务,那么该动作应该与异步相关吗?

  8. 8

    我如何在方法中使用 (WebElement webdriverWait until element is clickable) 并调用该方法以重新使用

  9. 9

    如何在我的网站中使用Chrome扩展功能(NaCl)?

  10. 10

    如何在我的网站中使用Chrome扩展功能(NaCl)?

  11. 11

    如何在我的日历维度中使用 OBIEE 的预测功能?

  12. 12

    我该如何在Javascript中使用[硬编码编号]。[函数调用]?

  13. 13

    我该如何在Typeorm和Postgres中使用经度和纬度

  14. 14

    我该如何在Javascript中使用[硬编码编号]。[函数调用]?

  15. 15

    我该如何在窗体中使用window.confirm对话框?

  16. 16

    我如何在vuex中的动作对象中使用异步和等待?

  17. 17

    我如何在 switch case 中使用字符串作为动作?

  18. 18

    如何在Xamarin和MvvmCross中使用动作栏

  19. 19

    我该如何使用CTE

  20. 20

    我该如何写一个简单的示例,说明如何在Swift 5中使用委托

  21. 21

    我该如何在JavaScript中实现功能乘法(2)(3)(5)

  22. 22

    如何在Jquery中使用功能?

  23. 23

    如何在gnuplot中使用Floor功能

  24. 24

    如何在功能中使用地图

  25. 25

    如何在R中使用子功能

  26. 26

    如何在功能中使用多重处理?

  27. 27

    如何在Nano中使用撤消功能?

  28. 28

    如何在VBA中使用“包含”功能?

  29. 29

    如何在功能组件中使用PanResponder?

热门标签

归档