slim4ddl Geschrieben 6. Oktober 2011 Geschrieben 6. Oktober 2011 (bearbeitet) Hey Leute, Ich habe ein Problem. Und zwar habe ich zwei Listboxen, diese möchte ich gerne miteinander vergleichen. Z.B. Listbox1: test1.txt test2.txt test3.txt test4.txt Listbox2: test2.txt test3.txt test5.txt Nun möchte ich wissen welche Dateien in Listbox 1 und in Listbox 2 Vorhanden sind. Also welche es in Beiden gibt. D.h. am ende möchte ich dieses Ergebnis haben: test2.txt test3.txt Habe aber leider keine Ahnung und noch nicht mal einen Ansatz wie ich das lösen könnte. Ein einfacher Vergleich der beiden Listboxen hilft mir ja leider nicht weiter, da die Einträge an verschiedenen Stellen stehen. Und ein sortieren der Einträge auch nicht, weil z.B in Listbox 1 mehr einträge stehen können als in Listbox 2... Hat einer von euch eine Idee oder einen Code Ansatz? Gruß! Bearbeitet 6. Oktober 2011 von slim4ddl
SilentDemise Geschrieben 6. Oktober 2011 Geschrieben 6. Oktober 2011 als idee: List<object> ergebnis = new list<object>(); foreach element1 in list1 { foreach element2 in list2 { if(element1.equals(element2)) { ergebnis.items.add(element1) } } }
Guybrush Threepwood Geschrieben 6. Oktober 2011 Geschrieben 6. Oktober 2011 List<string> list1 = new List<string>() { "test1", "test2", "test3", "test4" }; List<string> list2 = new List<string>() { "test1", "test4" }; var list3 = from x in list1 where list2.Contains(x) select x; [/PHP]
SilentDemise Geschrieben 6. Oktober 2011 Geschrieben 6. Oktober 2011 Möchtest du einem Anfänger direkt Linq zumuten? :-)
slim4ddl Geschrieben 6. Oktober 2011 Autor Geschrieben 6. Oktober 2011 Hab das jetzt so gelöst: For Each zeile As String In ListBox2.Items ListBox4.Items.Contains(zeile) Next Beim Debuggen sehe ich nun auch welche Dateien in beiden Listboxen Vorhanden sind nur wie kann ich mir die Dateien in einer variablen ausgeben lassen? Weil ich das hier irgendwie einbauen muss... Zur Info, ich möchte die Dateien umbennen (Auf dem Server), die in beiden Listboxen vorhanden sind, damit beim hochladen die Datei nicht ersetzt wird. Und die die nur in Listbox 2 vorhanden ist normal hochladen. For Each zeileaufserver As String In ListBox4.Items For Each Zeile As String In ListBox2.Items If Zeile = zeileaufserver Then Dim Request As Net.FtpWebRequest = Net.WebRequest.Create(ftpserver & zeileaufserver) Dim Response As Net.FtpWebResponse Request.Credentials = New Net.NetworkCredential(Benutzername, passwort) Request.Method = Net.WebRequestMethods.Ftp.Rename Request.Timeout = (60000 * 1) ' timeout Request.RenameTo = zeileaufserver + "1" 'Neuer Name Response = Request.GetResponse() Response.Close() My.Computer.Network.UploadFile(uppathall & "\" & Zeile, ftpserver & Zeile, Benutzername, passwort) Else My.Computer.Network.UploadFile(uppathall & "\" & Zeile, ftpserver & Zeile, Benutzername, passwort) End If Timer1.Start() lblausgabe.Text = "Alle Dateien erfolgreich hochgeladen!" lblhaken.Visible = True Next Next End If
slim4ddl Geschrieben 6. Oktober 2011 Autor Geschrieben 6. Oktober 2011 Hab das jetzt so gelöst: For Each zeile As String In ListBox2.Items ListBox4.Items.Contains(zeile) Next Beim Debuggen sehe ich nun auch welche Dateien in beiden Listboxen Vorhanden sind nur wie kann ich mir die Dateien in einer variablen ausgeben lassen? Das scheint so doch nicht zu gehen... Jemand eine andere Idee?
SilentDemise Geschrieben 6. Oktober 2011 Geschrieben 6. Oktober 2011 Naja du musst an irgendeiner Stelle auch einen Rückgabewert verarbeiten.
Sacaldur Geschrieben 6. Oktober 2011 Geschrieben 6. Oktober 2011 ich kenne mich zwar mit VB nicht aus, aber ich denke, mit einem If if (ListBox4.Items.Contains(zeile)) Then [...] End If
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden