Entwickler-Ecke
Basistechnologien - Array durchsuchen
Ccenter - Di 21.09.10 20:20
Titel: Array durchsuchen
Moin,
ich versuche gerade einen Array zu durchsuchen:
C#-Quelltext
1: 2: 3:
| Process[] p = Process.GetProcesses(); if (((IList<string>)p).Contains("firefox")) {...} |
Wo bitte ist denn mein Fehler bzw wie müsste es richtig lauten?
Christian S. - Di 21.09.10 20:28
Du castest eine Array aus Prozessen in eine Liste aus Strings. Das kann nicht funktionieren ;-)
Und dürfte eigentlich auch überflüssig sein, die Extension Methods sollten alle mit einem Array funktionieren.
Christian S. - Di 21.09.10 20:51
Die Extension Methods nehmen ja IIRC alle Lambda-Ausdrücke, da kann man dann auch den Namen prüfen :-)
In diesem Fall sollte Dein Vorschlag aber wirklich einfacher sein.
traceurmicha - Mi 29.09.10 10:22
Ich bin jetzt einfach mal so dreist und beantworte die simple Frage:
| Zitat: |
ich versuche gerade einen Array zu durchsuchen
Wo bitte ist denn mein Fehler bzw wie müsste es richtig lauten? |
ich würde ein Array so durchsuchen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| for(int i = 0;i<tempArray.Lenght;i++) { if(tempArray[i].Contains("firefox")) { } } |
Sorry falls ich das Thema verfehlt hab, will nur behilflich sein^^
Ccenter - Mi 29.09.10 18:59
Ich hab mein Problem jetzt quick&dirty gelöst: Einfach mit einer whileschleife mit try/catch, welche getprocessbyname durchführt.
Die Methode von traceurmicha ist natürlich schöner, werde ich ausbessern. Danke!
Kha - Mi 29.09.10 19:10
Was passt dir denn an
Yogus Vorschlag nicht?
Yogu - Mi 29.09.10 22:11
traceurmicha hat folgendes geschrieben : |
ich würde ein Array so durchsuchen:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7:
| for(int i = 0;i<tempArray.Lenght;i++) { if(tempArray[i].Contains("firefox")) { } } | |
Naja, vielleicht ein Array aus
Strings, aber sicher kein Array aus
Prozessen, wie es
Process.GetProcess [
http://msdn.microsoft.com/de-de/library/1f3ys1f9.aspx] zurückgibt, oder?
Ccenter hat folgendes geschrieben : |
| Ich hab mein Problem jetzt quick&dirty gelöst: Einfach mit einer whileschleife mit try/catch, welche getprocessbyname durchführt. |
Wofür brauchst du eine Schleife und wo wird eine Ausnahme geworfen? Wenn du genau einen Firefox-Prozess brauchst, kannst du doch einfach prüfen, ob die Länge >= 1 ist und dann auf das Element mit dem Index 0 zugreifen. Brauchst du alle, gehst du eben alle durch, aber eine Ausnahme dürfte trotzdem nicht entstehen :gruebel:
traceurmicha - Do 30.09.10 08:25
@Yogu:
Das durchsuchen der Prozesse würd ich dann so machen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| Process[] p = Process.GetProcesses(); for (int i = 0; i < p.Length; i++) { if (p[i].ToString().Contains("firefox")) { } } |
Ccenter - Do 30.09.10 14:25
Yogus Vorschlag hab ich doch angenommen und umgesetzt ;)
Ccenter hat folgendes geschrieben : |
Ich hab mein Problem jetzt quick&dirty gelöst: Einfach mit einer whileschleife mit try/catch, welche getprocessbyname durchführt.
Die Methode von traceurmicha ist natürlich schöner, werde ich ausbessern. Danke! |
Was ich wohl leider vergessen habe zu sagen ist, dass ich durchgehend prüfen möchte ob ein bestimmter Process läuft. Aber es läuft jetzt ja =)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!