Hallo
Mein Problem ist folgendes:
Ich möchte (ohne Schleife) herausfinden, ob sich eine gewisser Typ in einer List befindet. Mit Instanzen dieses Types funktioniert das schon, aber es geht um den Typ selbst.
Hier ein Beispiel:
Bei der Sub Test überprüft AllEntries.Contains(New SubClass1(4)) nur, ob sich in AllEntries eine Instanz der Klasse SubClass1 mit der Variable Value auf 4 befindet.
Mein Ziel ist es ohne Schleife herauszufinden, ob sich überhaupt eine Instanz der Klasse SubClass1 in AllEntries befindet.
Mit der Schleife würde es so funktionieren:
Aber das sieht aufgrund der Tatsache, dass die exakt selbe Schleife (nur ohne Exit For) direkt danach nochmal durchläuft etwas komisch aus.
Um jetzt einige Fragen zum Zweck zu beantworten:
In eine Datei werden nacheinander die nötigen Werte aller Instanzen der Klassen SubClass1 und SubClass2 (in Wirklichkeit andere Namen) geschrieben.
Diese werden nach Typ geordnet (also SubClass1: und es folgen alle Instanzen der Klasse SubClass1).
Das sieht so aus:
Wie im Kommentar erwähnt soll "SubClass1:" nur in die Datei geschrieben werden, wenn auch Instanzen von SubClass1 vorhanden sind.
Wenn das nicht vorher überprüft wird geht auch nicht die Welt unter. Es sieht halt schöner aus, wenn in der Datei unnötige Einträge weggelassen werden.
Ich hoffe ich konnte das Problem verständlich erklären.
Mein Problem ist folgendes:
Ich möchte (ohne Schleife) herausfinden, ob sich eine gewisser Typ in einer List befindet. Mit Instanzen dieses Types funktioniert das schon, aber es geht um den Typ selbst.
Hier ein Beispiel:
VB.NET-Quellcode
- Class BaseClass
- End Class
- Class SubClass1
- Inherits BaseClass
- Public Value As Integer
- Public Sub New(ByVal NewValue As Integer)
- Value = NewValue
- End Sub
- End Class
- Class SubClass2
- Inherits BaseClass
- 'Das selbe wie bei SubClass1
- End Class
- Dim AllEntries As New List(Of BaseClass)
- Private Sub Initialize() Handles MyBase.Load
- AllEntries.Add(New SubClass1(4))
- AllEntries.Add(New SubClass2)
- End Sub
- Private Sub Test()
- If AllEntries.Contains(New SubClass1(4)) Then
- End If
- End Sub
Bei der Sub Test überprüft AllEntries.Contains(New SubClass1(4)) nur, ob sich in AllEntries eine Instanz der Klasse SubClass1 mit der Variable Value auf 4 befindet.
Mein Ziel ist es ohne Schleife herauszufinden, ob sich überhaupt eine Instanz der Klasse SubClass1 in AllEntries befindet.
Mit der Schleife würde es so funktionieren:
Aber das sieht aufgrund der Tatsache, dass die exakt selbe Schleife (nur ohne Exit For) direkt danach nochmal durchläuft etwas komisch aus.
Um jetzt einige Fragen zum Zweck zu beantworten:
In eine Datei werden nacheinander die nötigen Werte aller Instanzen der Klassen SubClass1 und SubClass2 (in Wirklichkeit andere Namen) geschrieben.
Diese werden nach Typ geordnet (also SubClass1: und es folgen alle Instanzen der Klasse SubClass1).
Das sieht so aus:
VB.NET-Quellcode
- Using Writer As New IO.StreamWriter(...)
- '...
- Writer.WriteLine("SubClass1:") 'Dies soll vermieden werden, wenn keine Instanz von SubClass1 vorhanden ist
- For Each i As BaseClass In AllEntries
- If TypeOf i Is SubClass1 Then
- With DirectCast(i, SubClass1)
- Writer.WriteLine(.Value.ToString & ";" & ...) 'In Wirklichkeit folgen da noch einige andere Werte
- End With
- End If
- Next
- 'Das Selbe mit SubClass2
Wie im Kommentar erwähnt soll "SubClass1:" nur in die Datei geschrieben werden, wenn auch Instanzen von SubClass1 vorhanden sind.
Wenn das nicht vorher überprüft wird geht auch nicht die Welt unter. Es sieht halt schöner aus, wenn in der Datei unnötige Einträge weggelassen werden.
Ich hoffe ich konnte das Problem verständlich erklären.
"Luckily luh... luckily it wasn't poi-"
-- Brady in Wonderland, 23. Februar 2015, 1:56
Desktop Pinner | ApplicationSettings | OnUtils
-- Brady in Wonderland, 23. Februar 2015, 1:56
Desktop Pinner | ApplicationSettings | OnUtils