by
Roland Schumacher alias GENiALi
26. Juli 2010 -- 123
words -- 6641 mal gelesen
Da war einiges nötig bis ich den dreh raus hatte bzw. den richtigen Tipp bekam.
Anforderung:
Ich habe ein ArrayList mit Objekten vom Typ Person drin. ArrayList deshalb weil die Kollektion COM Visible sein muss. Generics funktionieren da nicht.
Ich wollte aber den Komfort, typsichere Abfragen zu machen, auch auf einem ArrayList haben. Wenn man mal den Dreh bei LINQ to Objects raus hat will man es nicht mehr abgeben.
ArrayList arl = new ArrayList();
arl.Add(new Person(){ID= .......});
arl.Add(new Person(){ID= .......});
arl.Add(new Person(){ID= .......});
Person person = arl.Where(p => p.ID == ID).FirstOrDefault(); //Geht nicht.
Lösung:
Person person = arl.OfType<Person>().Where(p => p.ID == ID).FirstOrDefault();
Einfach zwischen der Kollektion und Where ein OfType<T>() reinhängen.
Und wie gesagt, ich hätte gerne auf Generics zurückgegriffen. Aber COM Visible geht damit nicht.
