[C#] EndsWith in een Switch?

Pagina: 1
Acties:
  • 28 views sinds 30-01-2008

  • CrashOverDrive
  • Registratie: Augustus 2005
  • Laatst online: 22:56
Ik probeer nu al een paar uur om een if, om te zetten naar een switch, maar het wil niet helemaal lukken.

ik ben niet al te handig met Switches maar denk dat wat ik wil wel mogelijk moet zijn ermee, (via google kom ik alleen op VB).

De if ziet bijvoorbeeld zo uit: if(Files[iFile].Name.EndsWith(".exe"))

Hoe kan ik dit in een switch verwerken?
aangezien het niet bevoordelijk is voor me applicatie als ik er zo'n 50 if statements in maak voor elk bestandstype >:)

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Je moet de case op de laatste 4 karakters van Name doen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

En wat wil er dan niet helemaal lukken? Wat heb je zelf al geprobreerd en welke foutmeldingen kreeg je dan precies? Zie ook Programming Beleid en met name Programming Beleid - De Quickstart

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • CrashOverDrive
  • Registratie: Augustus 2005
  • Laatst online: 22:56
Ik krijg nog geen foutmeldingen omdat ik zelf wel door heb dat mijn manier van de switch niet gaat lukken,
ik loop vast op het punt hoe ik de Switch moet gebruiken op deze manier,

mijn eerste ingeving gaf mij aan om
code:
1
2
3
4
5
6
switch(Files[iFile].Name.EndsWith())
{
    case ".exe":
        LstItem.ImageIndex = 13;
        break;
}

Te gebruiken, maar na dit getikt te hebben had ik zelf al door dat dit niet gaat werken :( , omdat ik EndsWith op deze manier niet kan gebruiken, daarom mijn vraag of iemand een tip heeft, (of een zetje in de goede richting), over hoe het wel kan

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 29-11 18:01
Zoals gorgi_19 al zei: doe de switch op de naam van de extensie. Dus eerst een substring op de naam waar je extensie uit haalt die je vervolgens kan gebruiken in je switch.

stp - PSN ID: stp_4


  • CrashOverDrive
  • Registratie: Augustus 2005
  • Laatst online: 22:56
Zal dat eens gaan proberen dan :)

  • lier
  • Registratie: Januari 2004
  • Laatst online: 01-12 15:17

lier

MikroTik nerd

In plaats van substrings (wat super werkt, niets mis mee !) kan je beter gebruik maken van het Fileinfo object. Hier kan je direct aan de Extension refereren (en deze in je switch opnemen).

Eerst het probleem, dan de oplossing


  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 30-11 21:02
Als je het goed wilt doen, moet je het stuk vanaf de laatste punt nemen. Er zijn ook extensies met 4 letters.

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

lier schreef op vrijdag 11 mei 2007 @ 11:11:
In plaats van substrings (wat super werkt, niets mis mee !) kan je beter gebruik maken van het Fileinfo object. Hier kan je direct aan de Extension refereren (en deze in je switch opnemen).
Vergeet dan niet om te controleren op de ToLowerInvariant() versie anders kan je wat minder matches krijgen :P

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 29-11 18:01
lier schreef op vrijdag 11 mei 2007 @ 11:11:
In plaats van substrings (wat super werkt, niets mis mee !) kan je beter gebruik maken van het Fileinfo object. Hier kan je direct aan de Extension refereren (en deze in je switch opnemen).
Is inderdaad mooier maar gezien het niveau van de vraag zal hij eerst kennis moeten opdoen van het gebruik van een switch ;)

stp - PSN ID: stp_4


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
Dit is eigenlijk niet meer dan een gevalletje documentatie en syntax ref doornemen.

Zowiezo roep je nu de EndsWith method op zonder argumenten, dit terwijl die dus zowiezo al een arg verwacht.

Zo zal je het moeten doen:
code:
1
2
3
4
5
6
7
8
switch( extension )
{
   case "exe" :
       break;
   case "dll" :
       break;
   ...
}

Hoe je aan die 'extension' moet komen, dat kan je zelf wel uitvogelen natuurlijk. (Door bv eens naar de Path class te kijken).

Of werken met FileInfo in dit geval zoveel mooier is, durf ik te betwijfelen. Dit houdt dan nl. in dat je voor iedere file een FileInfo object moet instantiëren, en dat enkel en alleen maar om de extenstie teweten te komen.... Beetje overkill, niet ?

[ Voor 21% gewijzigd door whoami op 11-05-2007 11:16 ]

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.