問題タブ [ienumerator]
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.
c# - refによって値をIENumerator関数に渡しますか?
Unity3Dでこれを行っていることを明確にするために、これは重要な場合と重要でない場合がありますか?
生成されないIEnumerator関数にrefによって値を渡すことができるかどうかを調べようとしています。降伏するものでそれを行おうとすると、VS2010は文句を言います(「イテレータはrefまたはoutパラメータを持つことができません」)が、降伏関数を呼び出すがそれ自体を降伏しない同様のIEnumerator関数で呼び出しをラップすると、エラーはなくなり、動作しているように見えます。私は私が予期しない行動の土地にいるのか、それともこれが正常な行動であるのかを調べようとしています。
これが私がしていることの例です:
c# - foreachと同等のfor/whileは何ですか?
またはループforeach
に変換する必要があるループがあります。私のループは次のようになります。for
while
同等for
またはwhile
ループとは何ですか?
GetEnumerator
を取得するために使用する必要があると思いますIEnumerator<Item>
が、適切に使用する方法がわかりません。Items
はリストではありません。そうでない場合は、インデックスを使用します。
c# - foreach ステートメントはタイプ Dars の変数を操作できません 'GetEnumerator' のパブリック定義が含まれていません
リスト Dars があります
私は新しいダールを作成します
そして、このコードを使用してそれを埋めます
今、私はこのようなことをしたいと思います
しかし、私はこのエラーが発生しています
「PantaRei.Components.Dars」には「GetEnumerator」のパブリック定義が含まれていないため、foreach ステートメントは「PantaRei.Components.Dars」型の変数を操作できません
これを解決するにはどうすればよいですか?
c# - yield を使用して IEnumerable にアクセスする複数のスレッド
非常に大きなフラット ファイルを反復処理するサード パーティのライブラリを使用していますが、これには数分かかる場合があります。ライブラリは列挙子を提供するため、列挙子がフラット ファイル内の次の項目を抽出している間に、各結果を生成して処理できます。
例えば:
私が達成しようとしているのは、同じ Enumerable の 2 つのコンシューマーを持つことです。これにより、情報を 2 回抽出する必要がなくなり、各コンシューマーは、すべての時間が到着するのを待たずに、到着したときに各アイテムを処理できます。一度。
私が達成しようとしているのは次のようなものだと思います
「消費者が求めているアイテムがすでに抽出されている場合はそれを生成し、そうでない場合は次に移動して待機します」しかし、2つのスレッド間で MoveNext() が衝突する可能性があることを認識しています。
それがどのように達成されるかについての考えがなければ、このようなものはすでに存在しますか?
ありがとう
c# - 2 種類の反復子
すべてのコードについてお詫び申し上げますが、何をしようとしているのかを説明するのに苦労しました。タイル マップの 2D グリッドを作成しています。タイル (ブロック) は、チャンクと呼ばれる 10x10 の正方形のタイルに分割され、チャンクは 10x10 の正方形を形成して領域を形成し、10x10 の正方形の領域が世界を形成します。正方形の辺の寸法は blockSize です。
すべての座標は [X,Y]、0,0 は左上、すべて左から右、次に上から下にスキャンします。
大きいものから小さいものへ: ワールド -> リージョン -> チャンク -> ブロック。
この画像は、ブロックサイズが 2x2 のワールドがどのようにレイアウトされるかを示しています。
「大規模」アドレスは、サブユニットに分割されるのではなく、単一の巨大な配列にある場合の各ブロック アドレスがどうなるかを示しています。
この投稿の最後に、私が既に作業しているコードのクリフ ノート バージョンを示します。すべての構造を作成できます。各レベルがそれよりも低いレベルのみを反復できるように、反復子を設定しました (最後のコードを参照)。私のコードは次のことができます:
...
私が望むのは、イテレーターがデータの 2 つのレベルを反復できるようにすることです。たとえば、リージョンが与えられた場合、そのリージョン内のすべてのチャンクをスキャンして、全体のすべてのブロックのリストを取得します。または、与えられた世界で、世界のすべてのチャンクを取得します。または、世界全体のすべてのブロックの膨大なリスト。
...
...
必要なリストを生成するためにイテレータ コードを作成するにはどうすればよいですか? イテレータで複雑なことをしたのはこれが初めてで、その方法を理解するのに苦労しています。この種のことを試してみるのは良い考えですか?効率的/非効率的ですか?
これは、私が作業していることを示すために、私のコードがどのように見えるかを縮小したバージョンです。
c# - なぜ IEnumerator と IEnumerable が必要なのですか?
わかりましたので、私はIEnumerator
andを処理していましたIEnumerable
。現在、MSDN によると、これらの主な目的は、顧客のコレクションを反復処理することです。
ただし、どちらも使用せずにカスタムコレクションを反復処理できました(または、少なくともそう思いたいです)。
したがって、私の理解に欠陥があるのは、上記は、実装後に達成したのと同じ結果を私に与えていIEnumerator
ますIEnumerable
.
c# - IEumerator はなぜIEnumerable の状態に影響を与える列挙子でさえ最後に達しなかったのですか?
「最後の」割り当てで次のエラー メッセージ (テキスト リーダーのクローズド例外) がスローされる理由が気になります。
ただし、以下は正常に実行されます。
異なる動作の理由は何ですか?
nsdictionary - NSDictionary をループすると、奇妙な動作が発生する
私は現在、json 情報を格納するために使用している NSDictionary を持っています。JSON はもともと NSMutuable 配列にシリアル化されており、それを NSDictionary に割り当てています。
私の注釈メソッド (mkannotations をマップ ビューに追加するために使用しているメソッド) では、辞書をループして、辞書内の各オブジェクトのキーとして格納されている座標を介して注釈を追加しようとしています。
私の現在の結果は、1 つの注釈ビュー (マップ上のピン) のみを作成しているようです。ブレーク ポイントを介して見ると、辞書をループしているように見えますが、すべてのオブジェクトにアクセスしていないようです。私のコードは次のとおりです。
for 引数のキーは、@"v_lon" などのディクショナリ内のオブジェクトのいずれかのキーを参照する必要があると考えていますが、それは正しいようですか?
ありがとう
c# - オブジェクトに IEnumerable を実装する
IEnumerable
数時間ウェブを検索した後でも、 /IEnumerator
の仕組みと実装方法をまだ理解できません。
私はゼロから単純なものを構築しましたが、今はそれを実装して foreach できるようにしLinkedList
たいと考えています。IEnumerable
それ、どうやったら出来るの?