Ich habe folgendes Snippet gefunden und bräuchte hilfe dabei, es zu verstehen:
Meine Fragen hierzu:
Was macht [Select] in diesem Fall und warum ist es in eckige Klammern gesetzt? Ich weiss, dass man Select, wenn man es neu definiert (z.B. Function [Select] ... End Function) in eckige Klammern packen muss, weil es über Select Case belegt ist, aber in diesem Falle trifft doch eine Neudefinition nicht zu oder?
Mir ist manchmal der unterschied zwischen Linq und mehrzeiligen Lambdas nicht so richtig klar, worum handelt es sich hier und kann mir vielleicht jemand eine Seite empfehlen, wo ich das vernünftig Lernen kann?
VG
Rüdi
Meine Fragen hierzu:
Was macht [Select] in diesem Fall und warum ist es in eckige Klammern gesetzt? Ich weiss, dass man Select, wenn man es neu definiert (z.B. Function [Select] ... End Function) in eckige Klammern packen muss, weil es über Select Case belegt ist, aber in diesem Falle trifft doch eine Neudefinition nicht zu oder?
Mir ist manchmal der unterschied zwischen Linq und mehrzeiligen Lambdas nicht so richtig klar, worum handelt es sich hier und kann mir vielleicht jemand eine Seite empfehlen, wo ich das vernünftig Lernen kann?
VG
Rüdi
VB.NET-Quellcode
- 'Create WeeksInfo Object
- Dim jan1 = New DateTime(DateTime.Today.Year, 1, 1)
- 'beware different cultures, see other answers
- Dim startOfFirstWeek = jan1.AddDays(1 - CInt(jan1.DayOfWeek))
- Dim weeks = Enumerable.Range(0, 54).[Select](Function(i) New With { _
- Key .weekStart = startOfFirstWeek.AddDays(i * 7) _
- }).TakeWhile(Function(x) x.weekStart.Year <= jan1.Year).[Select](Function(x) New With { _
- x.weekStart, _
- Key .weekFinish = x.weekStart.AddDays(4) _
- }).SkipWhile(Function(x) x.weekFinish < jan1.AddDays(1)).[Select](Function(x, i) New With { _
- x.weekStart, _
- x.weekFinish, _
- Key .weekNum = i + 1 _
- })