Autor Beitrag
Ccenter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

Win7
C#
BeitragVerfasst: Di 21.09.10 20:20 
Moin,
ich versuche gerade einen Array zu durchsuchen:

ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Di 21.09.10 20:41 
user profile iconChristian S. hat folgendes geschrieben Zum zitierten Posting springen:
Und dürfte eigentlich auch überflüssig sein, die Extension Methods sollten alle mit einem Array funktionieren.

Das Problem ist ja, dass er den Firefox-Prozess nicht hat, sondern nur seinen Namen.

Die einfachste Lösung wäre wohl Process.GetProcessesByName ;)

Grüße,
Yogu
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
traceurmicha
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 160
Erhaltene Danke: 9

Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
BeitragVerfasst: 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:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
for(int i = 0;i<tempArray.Lenght;i++)
{
    if(tempArray[i].Contains("firefox"))
    {
        //Tu etwas
    }
}


Sorry falls ich das Thema verfehlt hab, will nur behilflich sein^^

_________________
Programmieren ist ein Rennen zwischen den Softwareentwicklern, die versuchen größere und bessere idiotensichere Programme zu schreiben und dem Universum, welches versucht größere und bessere Idioten zu produzieren. Zur Zeit liegt das Universum in Führung.

Für diesen Beitrag haben gedankt: Ccenter
Ccenter Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

Win7
C#
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 29.09.10 19:10 
Was passt dir denn an user profile iconYogus Vorschlag nicht?

_________________
>λ=
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 29.09.10 22:11 
user profile icontraceurmicha hat folgendes geschrieben Zum zitierten Posting springen:
ich würde ein Array so durchsuchen:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
for(int i = 0;i<tempArray.Lenght;i++)
{
    if(tempArray[i].Contains("firefox"))
    {
        //Tu etwas
    }
}

Naja, vielleicht ein Array aus Strings, aber sicher kein Array aus Prozessen, wie es Process.GetProcess zurückgibt, oder?

user profile iconCcenter hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 160
Erhaltene Danke: 9

Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
BeitragVerfasst: Do 30.09.10 08:25 
@Yogu:

Das durchsuchen der Prozesse würd ich dann so machen:

ausblenden 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"))
                {
                    //Tu etwas
                }
            }

_________________
Programmieren ist ein Rennen zwischen den Softwareentwicklern, die versuchen größere und bessere idiotensichere Programme zu schreiben und dem Universum, welches versucht größere und bessere Idioten zu produzieren. Zur Zeit liegt das Universum in Führung.
Ccenter Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

Win7
C#
BeitragVerfasst: Do 30.09.10 14:25 
Yogus Vorschlag hab ich doch angenommen und umgesetzt ;)

user profile iconCcenter hat folgendes geschrieben Zum zitierten Posting springen:
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 =)