LINQ: flexibles Order By

07/01/2010 - 02:23 von Armin Zingler | Report spam
Guten Morgen,

ich möchte eine Abfrage mal nach einem Integer-Wert, mal nach einem
String sortieren. Theoretisch geht es mit

select case Kriterium
case 1
dim q = from bla in blub order by bla.IntegerEigenschaft
case 2
dim q = from bla in blub order by bla.StringEigenschaft
end select

Nützt mir nur nichts da ich nach dem "End Select" auf q zugreifen muss.
Deklariere ich q vor dem "Select Case", dann müsste ich es als

dim q as IOrderedEnumerable(Of TElement)

deklarieren. Nur, "TElement" ist ein anonymer Typ, den ich deswegen nicht nennen kann.

Kann ich bei der Order By-Klausel irgendwie mit einem Comparer arbeiten?
Oder stattdessen die Erweiterungsmethode System.Linq.Enumerable.OrderBy(Of TSource, TKey) verwenden?
Wie ich mich auch drehe, ich brauche immer den anonymen Typ. Wahrscheinlich ist's
ganz einfach...ich komme nur gerade nicht drauf. Hat jemand ne Idee?


Armin
 

Lesen sie die antworten

#1 Gerrit Kuhlendahl
07/01/2010 - 02:52 | Warnen spam
Moin Armin!

"Armin Zingler" schrieb im Newsbeitrag news:
Guten Morgen,

ich möchte eine Abfrage mal nach einem Integer-Wert, mal nach einem
String sortieren. Theoretisch geht es mit

select case Kriterium
case 1
dim q = from bla in blub order by bla.IntegerEigenschaft
case 2
dim q = from bla in blub order by bla.StringEigenschaft
end select

Nützt mir nur nichts da ich nach dem "End Select" auf q zugreifen muss.



Wie wàr's denn damit:

Dim q As Object

select case Kriterium
case 1
dim q = from bla in blub order by bla.IntegerEigenschaft
case 2
dim q = from bla in blub order by bla.StringEigenschaft
end select

Ergebnis=ArbeiteMit(q)

ggf. noch mit Ctype entsprechend wandeln...

Viele Grüße

Gerrit


KUH-SOFT - Die Software von glücklichen Programmierern

Ähnliche fragen