Array durchsuchen VB.Net
-
tagchen.
habe folgendes Problem.habe ein Array mit Werten (Strings) bspw. "0415"
nun möchte ich dieses Array durchsuchen. Allerdings, wenn der Nutzer "04" eingibt, sollen alle Werte des Array die mit 04 beginnen angezeigt werden.Irgendwie komme ich da auf keinen grünen Zweig.
Ich hoffe ihr könnt mir helfen und Danke schonmal!
THX a lot
bart(holomeus)
-
Och da gibt's doch viele Möglichkeiten.
String[] list = { "954", "0593", "05678", "9945" }; var qry = from l in list where l.StartsWith("05") orderby l select l; foreach (var entry in qry) Console.WriteLine(entry);
-
Danke erstmal für die antwort.
aber das funzt nich.
ich glaub das geht im visual studio 2008 aber ich benutze hier das 2005er. und da wird das noch nicht unterstützt.
gibt es denn sonst noch eine möglichkeit???
-
Wenn das Array nicht zu groß ist kannst du es sortieren und dann mit BinarySearch auf das erste "upperbound" setzen. Ansonsten solltest du einen moderneren Container in Betracht ziehen.
//Suchstring String searchItem = "07"; String[] list = { "754", "053", "05678", "7945" }; //Array muß sortiert sein Array.Sort(list); //erstes Element >= gefundenes Element int start = Array.BinarySearch(list, searchItem); //exakt ein Treffer if (start >= 0) { Console.WriteLine(list[start]); return; } //erstes Element größer Suchstring start = ~start; //Suchstring größer als letztes Element if (start == list.Length) return; //Alle Elemente die mit Suchstring beginnen, ausgeben while (list[start].StartsWith(searchItem)) { Console.WriteLine(list[start]); start++; if (start >= list.Length) return; }
Kapsel dir das am besten in einer Klasse.
Und steig auf 3.5 um das ist ja fast die vierfache Zeilenmenge.
-
ich danke dir.
irgendwann werd ich das wohl machen müssen