Hallo ,
ich hab ein kleines Problem. Ich habe eine Klasse gebaut der Listen (List(Of T)) verschiedener Typen übergeben werden z.B List(Of DashStyle),
List(Of LineCap), List(Of String). Deshalb habe ich den Typ der Schnittstelle allgemeingehalten sodaß ich alles reinschieben kann nämlich
List(Of Object).
Ich schaffe es aber nicht den Typ List(Of Object) zur Weiterverarbeitung in einen entsprechenden anderen Typ List(Of DashStyle) etc.
zu casten.
Ich habs mit ConvertAll usw. probiert, kriege aber die Syntay einfach nicht richtig hin!
Könnt Ihr mir da weiterhelfen und zeigen wie ich Listen richtig caste?
....so sieht meine Klasse aus:
UPDATE:
Ich hab grad durch probieren herausgefunden dass ich gar nicht casten muss. Ich habe die Strings einfach der List(Of Object) zugewiesen. Aber nur weil es oberflächlich gesehen funktioniert heißt das noch lange nicht das das was ich hier gemacht hab "Best Practice" ist???? .
Ist das so wie ich es hier zsammengetackert habe gut und richtig oder gibt es eine ellegantere, effizientere und damit bessere Methode?
Das reduzierte TestProjekt habe ich angehängt!
Hier mein Source:
Vielen Dank für Eure Mühe vorab,
Duster
ich hab ein kleines Problem. Ich habe eine Klasse gebaut der Listen (List(Of T)) verschiedener Typen übergeben werden z.B List(Of DashStyle),
List(Of LineCap), List(Of String). Deshalb habe ich den Typ der Schnittstelle allgemeingehalten sodaß ich alles reinschieben kann nämlich
List(Of Object).
Ich schaffe es aber nicht den Typ List(Of Object) zur Weiterverarbeitung in einen entsprechenden anderen Typ List(Of DashStyle) etc.
zu casten.
Ich habs mit ConvertAll usw. probiert, kriege aber die Syntay einfach nicht richtig hin!
Könnt Ihr mir da weiterhelfen und zeigen wie ich Listen richtig caste?
....so sieht meine Klasse aus:
VB.NET-Quellcode
- Imports Microsoft.CodeAnalysis.VisualBasic.Syntax
- Namespace Helpers
- Public Class ListServer
- #Region "Private Variables"
- #End Region
- #Region"Properties"
- Public Property GeneralList As New List(Of Object)
- #End Region
- #Region "Constructor"
- Sub New(someList As List(Of Object))
- GeneralList = someList
- End Sub
- #End Region
- Private Sub Test()
- Dim result As List(Of String)
- Dim testList As List(Of String)
- result = GeneralList. ?????????????????????????????????????????????????
- End Sub
- End Class
- End NameSpace
UPDATE:
Ich hab grad durch probieren herausgefunden dass ich gar nicht casten muss. Ich habe die Strings einfach der List(Of Object) zugewiesen. Aber nur weil es oberflächlich gesehen funktioniert heißt das noch lange nicht das das was ich hier gemacht hab "Best Practice" ist???? .
Ist das so wie ich es hier zsammengetackert habe gut und richtig oder gibt es eine ellegantere, effizientere und damit bessere Methode?
Das reduzierte TestProjekt habe ich angehängt!
Hier mein Source:
VB.NET-Quellcode
- Option Strict On
- Public Class Form1
- Private Sub CmdCast_Click(sender As Object, e As EventArgs) Handles CmdCast.Click
- Dim testStrings() = {"Al", "Peg", "Kelly", "Bud", "Buck", "BUNDY"}
- Dim stringList As New List(Of String)
- Dim resultList As New List(Of String)
- Dim objectList As New List(Of Object)
- objectList.AddRange (testStrings)
- stringList.AddRange(testStrings)
- 'resultList =
- LsbTest.Items.AddRange (objectList.ToArray())
- End Sub
- End Class
Vielen Dank für Eure Mühe vorab,
Duster
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Duster“ ()