enumerable

___ answer9400276 ___

Zum Spaß, hier ist ein Trick, um eine echte unendliche Sequenz in einem einzigen Ausdruck zu erstellen. Die ersten beiden Definitionen sind Klassenfelder, so dass sie keinen zu initialisierenden Ausdruck benötigen.

%Vor%     
___ answer9405866 ___

Hier ist eine ähnliche Antwort wie bei der angegebenen @ hvd, aber mit dem Operator %code% definiert hier , dies beseitigt die Notwendigkeit für die lokalen Variablen:

%Vor%

Ein Beispiel wäre:

%Vor%

Was würde 20, 10, 5, 2,5 usw. ausgeben ...

Ich würde nicht empfehlen, dies im Produktionscode zu verwenden, aber es macht Spaß.

Der Operator %code% erlaubt auch andere rekursive Lambda-Ausdrücke, z. B .:

%Vor%     
___ answer9399919 ___
%Vor%

Es ist nicht wirklich unendlich, aber da sowohl %code% als auch %code% eine verzögerte Ausführung verwenden, werden Sie keine Leistung verlieren.

Ich kenne keinen nativen Weg, um einen unendlichen linq Ausdruck zu erstellen.

Oder Sie können die unendliche Version von %code%

manuell schreiben     
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123linq ___ Die Language Integrated Query (LINQ) ist eine Microsoft .NET Framework-Komponente, die native Datenabfragefunktionen zu .NET-Sprachen hinzufügt. Bitte denken Sie bei Bedarf daran, ausführlichere Tags zu verwenden, zum Beispiel [linq-to-sql], [linq-to-entities] / [entity-framework] oder [plinq] ___ answer9399781 ___

Ich kenne keinen einzigen Ausdruck Weg, aber ich fand diesen cleveren Generator-Code hier: Ссылка

%Vor%

In Ihrem Fall würden Sie es verwenden:

%Vor%     
___ answer9401445 ___

Ich kenne keine Möglichkeit, mit LINQ eine unendliche Sequenz zu erstellen. Sie könnten jedoch eine sehr lange Sequenz erstellen.

%Vor%

Da %code% jedoch eine endliche Genauigkeit hat, erhalten Sie wahrscheinlich nur Nullen, wenn %code% zu hoch wird. Sie müssen experimentieren, um zu sehen, was passiert und wie hoch %code% sein kann, bevor es funktioniert.

    
___ qstntxt ___

Stellen Sie sich eine unendliche Folge ihrer aufeinanderfolgenden Hälften vor.

%Vor%

(Ignorieren Sie numerische Instabilitäten in %code% .)

Kann dies in einem einzelnen Ausdruck geschehen, ohne irgendwelche benutzerdefinierten Erweiterungsmethoden oder Generatormethoden zu schreiben?

    
___ tag123infinitesequence ___ hilf uns dieses Wiki zu bearbeiten ___ tag123sequenzen ___ Eine Sequenz ist ein beliebiger Typ, für den eine bijektive Beziehung zwischen den Ganzzahlen "0..n" und den Elementen der Sequenz besteht, und auf die Elemente kann in der Reihenfolge '0..n' zugegriffen werden, wobei 'n 'ist die Anzahl der Elemente in der Sequenz. ___ qstnhdr ___ Linq-Anweisung für eine unendliche Folge aufeinanderfolgender Hälften ___ Tag123Enumerable ___ "Aufzählbar" bezieht sich auf ein Ordnungsschema, mit dem Elemente in einer Gruppe, Sequenz oder Sammlung leicht adressiert oder durchlaufen werden können. ___
5
Antworten

Wie wird mit dem vorherigen Element in 'jedem' Iterator verglichen?

update : Entschuldigung, ich habe mein Programm repariert: %Vor% Gibt es in ruby language eine weitere schöne Möglichkeit, dasselbe zu tun? übrigens. a ist ein ActiveRecord::Relation in meinem wahren Fall. Danke.     
01.03.2012, 13:32
5
Antworten

Linq-Anweisung für eine unendliche Folge aufeinanderfolgender Hälften

Stellen Sie sich eine unendliche Folge ihrer aufeinanderfolgenden Hälften vor. %Vor% (Ignorieren Sie numerische Instabilitäten in double .) Kann dies in einem einzelnen Ausdruck geschehen, ohne irgendwelche benutzerdefinierten Erweiteru...
22.02.2012, 17:17