Avatar billede beef12 Nybegynder
28. februar 2007 - 08:42 Der er 10 kommentarer og
1 løsning

Hvordan virker exists

Jeg forstår ikke hvordan Exists fungerer på en List.

Hvordan ville jeg for eksempel finde ud af om stregen "Hest" ligger i listen List<string> dytArter ?
Avatar billede beef12 Nybegynder
28. februar 2007 - 08:47 #1
hehe - skulle så dyrArter...
Avatar billede kalp Novice
28. februar 2007 - 08:56 #2
if(list.Exists("Hest"))
list.Find("Hest")

nu gemmer jeg den ikke eller noget.. men sådan.
Avatar billede beef12 Nybegynder
28. februar 2007 - 09:03 #3
det virker nemlig ikke :-)
Argument '1': cannot convert from 'string' to 'System.Predicate<string>'

Men det er faktisk Contains jeg egentlig havde brug for. Kunne dog være rart at vide hvad exists bruges til og hvordan det bruges.
Avatar billede mcgoat Nybegynder
28. februar 2007 - 09:06 #4
Du kan læse om den her hvis det er: http://msdn2.microsoft.com/en-us/library/bfed8bca.aspx
Avatar billede beef12 Nybegynder
28. februar 2007 - 09:07 #5
Har jeg gjort - synes bare ikke jeg blev synderligt klogere...
Avatar billede kalp Novice
28. februar 2007 - 11:18 #6
if( list.Contains("hest"))

men under alle omstændigheder.. hvad er det du gerne vil lave?
Avatar billede kalp Novice
28. februar 2007 - 11:24 #7
List<string> list = new List<string>();
list.Add("haha");
if (list.Contains("haha"))
MessageBox.Show("fundet");


virker fint.
Avatar billede beef12 Nybegynder
28. februar 2007 - 17:25 #8
Jojo - jeg anvender allerede Contains. Jeg er bare stadig lidt nysgærrig.

Men jeg er tilsyneladende ikke den eneste her på eksperten der ikke kan finde ud af Exists :-) For jeg har ikke fået er reelt eksempel endnu.
Avatar billede crazysnap Seniormester
02. marts 2007 - 12:25 #9
Hej beef12,

Exists metoden vil bare gerne have en metode (delegate) ind som argument. Det betyder du kan definere en metode som returnerer en bool og som sammenligner på elementerne i listen.

Nedenfor viser jeg to forskellige måder at kalde Exists på, én med en defineret statisk metode og én med en delegate:


List<string> lst = new List<string>();

lst.Add("str"); lst.Add("stre"); lst.Add("stren");



//1) Første måde at gøre det på.
bool res = lst.Exists(sammenlign);

if (res)
    Console.WriteLine("En streng i listen er længere end 4");




//2) Anden måde, med parametre.
int intLength = 3;
string strStreng = "stren";

res = lst.Exists(delegate(string strElm) { return strElm.Length > intLength && strElm == strStreng; });

if (res)
    Console.WriteLine("En streng i listen er længere end " + intLength + " og har værdien: " + strStreng);




//Den statiske metode som kastes med ind ved første metode
public static bool sammenlign(string strElm)
{
    return strElm.Length > 4;
}



Håber det kastede lidt lys over hvad man kan bruge Exists til! :)


Mvh.

- Snap :)
Avatar billede beef12 Nybegynder
03. marts 2007 - 13:49 #10
Hej Snap

Tak for den meget udførlig beskrivelse. Det var lige det har manglede.
Avatar billede crazysnap Seniormester
03. marts 2007 - 14:16 #11
Det var da så lidt! :)


Tak for pointene!


Mvh.

- Snap
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester