理解 Entity Framework 和 IEnumerable

Making sense of Entity Framework and IEnumerable

我无法尽快进行调试,所以我想知道以下代码是否有意义。不熟悉 IEnumerable 但我只是一名学生,我的老板让我使用它们。

感谢您的帮助,非常感谢! (VB.NET)(同样在对象之前只是为了存储它的副本以便我可以在我的撤消按钮中使用)

 'Get from entity framework
        Dim IdNow As Integer = PartInfoNow.IdPartInfo
        Dim NowPartInfo As IEnumerable(Of PartInfo) = (From a In Db.PartInfo Where a.IdPartInfo = IdNow).ToList

        Dim StackUpNow As New ClsStackUp(SqlConnectionString, (New Settings1).ProgramAdmins)

        Dim Before As IEnumerable(Of PartInfo) = {NowPartInfo(0)}

代码有意义。

IEnumerable 是一个非常常见的接口,只有一个方法 "GetEnumerator()"。任何 IEnumerable 都可以在 foreach 循环中迭代。你在这里并没有真正获得任何优势(除非你想删除你从列表中获得的其他功能 class)。

假设您有此方法;

Private Sub SomeMethod(ByVal integers As List(Of Integer))

    For Each i As Integer In integers
        'do something with i
    Next

End Sub

此方法仅在您向其传递列表(整数)或从列表(整数)派生的 class 时才有效。如果你想给它传递一个整数数组,你不能,因为类型不匹配。但是如果你把方法改成这个;

Private Sub SomeMethod(ByVal integers As IEnumerable(Of Integer))

    For Each i As Integer In integers
        'do something with i
    Next

End Sub

您可以将所有类型的整数集合(例如,数组而不是列表)传递给此方法,并且它能够处理它(只要每个集合类型都实现了 IEnumerable 接口,大多数都实现了)