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 Zitieren
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) } } } Zitieren
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] Zitieren
SilentDemise Geschrieben 6. Oktober 2011 Geschrieben 6. Oktober 2011 Möchtest du einem Anfänger direkt Linq zumuten? :-) Zitieren
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 Zitieren
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? Zitieren
SilentDemise Geschrieben 6. Oktober 2011 Geschrieben 6. Oktober 2011 Naja du musst an irgendeiner Stelle auch einen Rückgabewert verarbeiten. Zitieren
slim4ddl Geschrieben 6. Oktober 2011 Autor Geschrieben 6. Oktober 2011 Und wie soll ich das machen? Zitieren
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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.