我不能在不久的任何时候调试,所以我想知道以下代码是否有意义。不熟悉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)}
答案 0 :(得分:2)
代码是有道理的。
IEnumerable是一个非常常见的接口,只有一个方法" GetEnumerator()"。任何IEnumerable都可以在foreach循环中迭代。你在这里没有获得任何好处(除非你想要删除你从List类中获得的其他功能)。
让我们假设您有这种方法;
Private Sub SomeMethod(ByVal integers As List(Of Integer))
For Each i As Integer In integers
'do something with i
Next
End Sub
此方法仅在您传递列表(Of Integer)或从列表(Of Integer)派生的类时才有效。如果你想传递一个整数数组,你不可能因为类型不匹配。但是如果你把方法改为这个;
Private Sub SomeMethod(ByVal integers As IEnumerable(Of Integer))
For Each i As Integer In integers
'do something with i
Next
End Sub
你可以传递这个方法的各种整数集合(例如一个数组而不是一个列表)并且它能够处理它(只要每个集合类型实现IEnumerable接口,大多数都这样做)