23. marts 2008 - 03:03Der er
9 kommentarer og 1 løsning
List.Findall
Hej
Jeg forsøger at konvertere nedenstående fra C# til vb:
public static List<Movie> GetMoviesByCategory(Guid categoryId) { List<Movie> col = Movies.FindAll(delegate(Movie p) { return p.Categories.Contains(Category.GetCategory(categoryId)); });
col.Sort(); col.TrimExcess(); return col; }
Mit store problem er at finde ud af, hvad der skal stå i movies.findall(?????):
Public Shared Function GetMoviesByCategory(ByVal categoryId As Guid) As List(Of Movie) Dim col As List(Of Movie) = Movies.findall(?????) col.Sort() col.TrimExcess() Return col End Function
Når jeg forsøger med de forskeliige automatiske konverteringssider laver de bare ged i den :-(
Tak for dit svar. Når jeg prøver dit forslag til 2.o. kommer den med følgende fejl:
Method 'Public Shared Function MyFinder(p As Movie) As Object' does not have the same signature as delegate 'Delegate Function Predicate(Of T)(obj As Movie) As Boolean'.
Det er muligt at der findes en smartere løsning, men det eneste jeg kan komme i tanke om er:
Movies.FindAll(AddressOf (New MyFinderClass(categoryId)).MyFinder)
og
Public Class MyFinderClass Private Guid categoryId Public Sub New(target As Integer) categoryId = target End Sub Public Shared Function MyFinder(p As Movie) As Boolean return p.Categories.Contains(Category.GetCategory(categoryId)) End Function End Class
Sorry havde helt glemt det her - fandt aldrig en løsning - du får pointene
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.