問題タブ [enumerators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
7023 参照

c# - リストを返すことよりも利回りを返すことの同時実行またはパフォーマンスの利点

リストを返すよりもyield returnを使用することで、同時実行性(現在または将来)があるかどうか、またはパフォーマンス上の利点があるかどうか疑問に思っていました。次の例を参照してください

処理方法

イールドリターンの使用

リストを返す

0 投票する
7 に答える
2292 参照

c# - コレクションを列挙すると例外がスローされるのに、そのアイテムをループすると例外がスローされないのはなぜですか?

私はいくつかの同期構造をテストしていましたが、混乱することに気付きました。同時に書き込み中にコレクションを列挙していると、例外がスローされましたが (これは予期されていました)、for ループを使用してコレクションをループすると、そうではありませんでした。誰かがこれを説明できますか?リストでは、リーダーとライターが同時に操作することはできないと思いました。コレクションをループすると、列挙子を使用した場合と同じ動作を示すと予想していました。

更新: これは純粋に学術的な演習です。リストが同時に書き込まれている場合、リストを列挙するのは悪いことだと理解しています。また、同期構造が必要であることも理解しています。私の質問は、操作 1 では期待どおりに例外がスローされるのに、もう 1 つは例外がスローされない理由についてです。

コードは以下のとおりです。

0 投票する
4 に答える
5395 参照

ruby - 列挙子はRuby1.9.1でどのように機能しますか?

この質問は、Ruby 1.9.1で列挙子を使用する方法についてではなく、それらがどのように機能するのか興味があります。ここにいくつかのコードがあります:

上記のコードでは、、、e = Bunk.new.each次にe.nexte.nextを使用して連続する各要素を取得できますが、実行を一時停止してから適切な場所で再開するのはどの程度正確ですか?

の歩留まりをに0.upto置き換えるとFiber.yieldわかりやすいと思いますが、ここではそうではありません。それは昔ながらのことですが、yieldどのように機能しますか?

enumerator.cを見ましたが、私には理解できないほどです。たぶん誰かが、1.8.6スタイルの継続ベースの列挙子ではなく、ファイバーを使用してRubyで実装を提供することができます。これにより、すべてが明確になりますか?

0 投票する
6 に答える
1968 参照

c# - .NET に双方向列挙子がないのはなぜですか?

SO で、双方向列挙子を実装する方法について何度か尋ねられました (ここここ)。私の質問は、方法(ほとんどの場合は些細なことです) ではなく、.NET プラットフォームにそのような型が存在しない理由です。

明らかに、これを実装できない多くのコレクション型があります。これは、MoveNext()破壊的であるか、基になるコレクションの状態を変更するためです。しかし逆に、多くの型はこれを自明に実装できますList( 、IList、)。LinkedListarray

なぜそのようなタイプが存在しないのですか?

0 投票する
2 に答える
173 参照

c# - 反復中にコレクションの項目フィールドを変更すると、コレクションが無効になりますか?

もしそうなら:

コレクションに対するイテレータは無効になりますか?

ありがとう

0 投票する
3 に答える
4773 参照

c# - F# 降伏! operator - 実装および考えられる C# の同等物

私は現在 F# を学んでおり、yield!(yield-bang) 演算子が大好きです。その名前だけでなく、もちろんそれが何をするかについても。

演算子を使用すると、yield!基本的に、シーケンス式からシーケンスのすべての要素を生成できます。これは、列挙子を作成するのに役立ちます。私は定期的に大きくて複雑な列挙子に遭遇するので、それらを分割して単純な列挙子から構成するために使用できる戦略に興味があります。

残念ながら、このyield!演算子は C# では使用できません。私が理解している限り、それが何をするかは似てforeach (var x in source) yield x;いますが、私が読んでいる本 ( Petricek's Real World F# - Manning ) は、それがより良いパフォーマンスを持っていることを示唆しています...

  • では、ここで F# コンパイラは正確に何を行うのでしょうか? (はい、Reflector を使用して見ることもできますが、メカニズムの詳細な説明が必要です)。

C# で同様の構成を実現するために、複数の方法を検討しましたが、どれもyield!演算子ほど簡潔ではなく、複雑さもわかりません。私の BigO 番号が正しい場合、誰かが入力を提供してもらえますか?

  • 列挙子を複数のプライベート列挙子に分解し、パブリック列挙子から各要素を生成します。

    これにより、事実上、各要素で「二重の利回り」が得られます。それはO(2n)ですか?(またはさらに悪い?)とにかく、このアプローチを使用yield break;すると、サブパーツのいずれからも使用できなくなります。

  • 列挙子を複数のプライベート列挙子に分解し、パブリック列挙子からすべてのプライベート列挙子を連結します。

    Concat()上記で概説した方法で実装されているため、これは前述のソリューションと変わらないと思います。

他のオプションはありますか?

0 投票する
1 に答える
19632 参照

c# - C# イテレーターとジェネレーターとは何ですか。また、それらをどのように利用できますか?

私は VB.Net 開発者であり、C# の初心者のようなものです。C# のドキュメントを見ながら、イテレーターとジェネレーターを使用しましたが、使用方法を完全には理解できませんでした。

0 投票する
4 に答える
1179 参照

c# - foreachは組み込み型にIEnumerator/IEnumerableを使用しますか?

foreachループはインターフェイスIEnumeratorを使用しIEnumerable、カスタムタイプ(クラス)のオブジェクトを反復するためだけに使用しますか、それとも組み込みタイプ(舞台裏)を反復するためにも使用しますか?

0 投票する
1 に答える
391 参照

asp-classic - ASP ClassicFOREACHループはどのように機能しますか

ここで、 ASP Classic / VB6FOREACH ループがどのように機能するかを説明します。.NET IEnumberable / IEnumeratorが関係していることは知っていますが、VB6 / ASP Classicはどのように機能しますか?

ありがとう!

0 投票する
1 に答える
3322 参照

c# - 型を暗黙的に変換できませんか? キャストがありませんか? 配列、列挙子、および Web サービス

外部システムに SOAP メッセージを送信しようとしています。このシステムには、配列と列挙子を使用してコードに統合する必要がある定義済みのデータ型が既にあります。

私の問題は、列挙子変数が私に次のエラーを与えていることです:

エラー 1 タイプ 'UpdateRatePacks._Default.Rate.AvailAppType' を 'UpdateRatePacks.IService.AvailAppType?' に暗黙的に変換できません。明示的な変換が存在します (キャストがありませんか?)

このエラーは、ページの型を Web サービスの型に変換できないことを示していますが、データ構造は同じです。

私はこのエラーをどこでも検索し、Web サービスの列挙子、配列の列挙子、列挙子を配列に変換することも検索しましたが、何も機能しませんでした。エラーはまだ同じです。

解析変換用の次のコード行も含まれています。

このコードの複雑さは、配列に列挙子が含まれているため、列挙子で間違っているのか、配列自体で間違っているのか、Web サービス全体で間違っているのかわかりません。

これは、エラーの発生元のメッセージとして更新を送信するコードの一部です

ureq は、送信先の Web サービスの UpdateRatePacks メソッドです。

以下に定義されているクラス/オブジェクト:

どんなアドバイスでも大歓迎です。