Christian S. - Fr 30.05.08 19:35
Titel: Anonyme Klasse außerhalb von LINQ
Hi!
Ich würde gerne eine anonyme Klasse benutzen, aber nicht in einem Linq-Statement. Es soll in etwa so aussehen:
Delphi-Prism-Quelltext
1: 2: 3: 4:
| var rows := new List<AnonymeKlasse>; using reader := MySqlHelper.ExecuteReader(...) do while reader.Read do rows.Add(new AnonymeKlasse(...)); |
Nun müsste ich die anonyme Klasse ja schon bei Erstellung der Liste irgendwie definieren. Geht das überhaupt oder muss ich mit einer privaten nested Klasse arbeiten?
Grüße
Christian
Robert_G - Sa 31.05.08 07:56
Titel: Re: Anonyme Klasse außerhalb von LINQ
Christian S. hat folgendes geschrieben: |
Nun müsste ich die anonyme Klasse ja schon bei Erstellung der Liste irgendwie definieren. Geht das überhaupt oder muss ich mit einer privaten nested Klasse arbeiten? |
Die einzige Möglichkeit das zu lösen ohne selbst die Klasse zu definieren wäre Extensionmethods:
Delphi-Prism-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| uses System.Runtime.CompilerServices, System.Collections.Generic;
type [Extension] AnonymousListExtender = public static class public [Extension] method MakeEmptyList<T>(input : T) : List<T>; end; implementation
method AnonymousListExtender.MakeEmptyList <T>(input : T) : List<T>; begin exit new List<T>(); end; |
Und so würde es benutzt werden:
Delphi-Prism-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var list := new class(Abc := 1, Def := "2").MakeEmptyList(); list.Add(new class(Abc := 1, Def := "2")); list.Add(new class(Abc := 3, Def := "4"));
list.ForEach(i -> Console.WriteLine(i.Abc + ", " + i.Def)); |