問題タブ [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.

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

c# - IEnumerator.Reset()を使用するにはどうすればよいですか?

電話をかける正しい方法はどれくらい正確IEnumerator.Resetですか?

ドキュメントには次のように書かれています。

このResetメソッドは、COMの相互運用性のために提供されています。必ずしも実装する必要はありません。代わりに、実装者は単に。をスローできますNotSupportedException

さて、それは私がそれを呼ぶことになっていないという意味ですか?

フロー制御に例外を使用するのはとても魅力的です。

それは私たちがそれを使用することになっている方法ですか?それとも、マネージコードから使用するつもりはありませんか?

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

c# - コレクションを実装する簡単な方法は?

IEnumeratorとIEnumerableを実装するコレクションクラスを開発しています。

私の最初のアプローチでは、それらを直接実装しました。これで、yieldキーワードを発見し、IEnumerator / IEnumerableインターフェイスを、yieldを使用してループ内でIEnumerableを返す読み取り専用プロパティValuesに置き換えて、すべてを単純化することができました。

私の質問:IEnumerable / IEnumeratorを実装せずに、クラス自体を反復処理できるような方法でyieldを使用することは可能ですか?

つまり、フレームワークコレクションと同様の機能が必要です。

これは可能ですか?

更新:私の質問はひどい言い回しだったようです。IEnumeratorまたはIEnumerableを実装してもかまいません。私はそれを行う唯一の方法は古いCurrent/MoveNext/Resetメソッドを使用することだと思っていました。

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

c# - IDisposable の問題をクリーンアップする

これらの関数を呼び出して必要のないものを取り除こうとしていますが、無駄な闘いであると認識し始めていることで、コードが私を打ち負かしているようです。これらの最後の 2 つのエラーを解決するために複数の方法を試しましたが、IEnumerator からワイルド カードが返されます。エラーは行にあります: if (enumerator2 is IDisposable) and if (enumerator is IDisposable)

編集固有のエラー メッセージ: Use of unassigned local variable 'enumerator2'
Use of unassigned local variable 'enumerator'

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

file - SSIS パッケージの Foreach ループ コンテナーを使用して、最近作成されたフォルダーを選択するにはどうすればよいですか?

SSIS に関する興味深い課題があります。各ファイル列挙子を使用して、最近作成されたサブフォルダーを選択し、各ファイルを反復処理する必要があります。

おそらく、例がよりよく説明するでしょう。フォルダは次のようになります。

c:\data\2011-0703

c:\data\2011-0626

c:\data\2011-0619

For each file 列挙子で最新のフォルダーを選択するにはどうすればよいでしょうか? これは、作成日を確認するか、ファイル名を比較することによって行うことができます。

私はそれが列挙子の式で行われると推測していますが、どうやってうまくいかないのですか! ネット上でも何も見つかりませんでした。

ありがとう

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

c# - IEnumerableを返す方法収量が1つある場合の収集

入力コレクションを返したい場合、foreachの代わりにイテレータブロックでreturnステートメントを使用する最も賢い方法は何ですか?

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

linq-to-sql - LinQ 結果セットから列数と列名を取得する

グリッド ビュー ユーザー コントロールを作成しています。LinQ 結果セットから列数と列名を取得する方法を知りたいです。これは、動的グリッド ビューを作成するために使用されます。

私がここに持っているのは、これを持つ1つのクラスです:

私のグリッドビューには、結果セットを受け取るこのプロパティがあります。

これを行う方法はありますか?

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

c# - スコープが制限されたサブ列挙子を作成するにはどうすればよいですか?

100個の要素を持つコレクションがあるとしましょう。通常の列挙子は、これらの100個の要素を反復処理します。

スコープが「hehe」から「there」までの列挙子(通常の列挙子に基づく、つまり各コレクションごとではなく、1つの一般的なアプローチ)を作成したいと思います。たとえば、反復することができます。真ん中だけに20以上の要素。

したがって、このような場合、「scoped_iter.Reset()」を呼び出すと、0要素にリセットされます(コレクション全体で10番目)。

また、10〜30の要素のみを「認識」します。

問題は、そのような列挙子をどのように実装するかです。

編集

1.1。

「そこ」に到達するには非常に時間がかかる可能性があるため、「そこ」からではなく「ここ」からイテレータが必要です。ただし、これは実際には些細なことですが、最も問題となるのはリセット方法です。

2.2。

ジョンは背景について尋ねました。私が実際に達成しようとしているのは、コレクションをスライスすることです(つまり、10個の文字列のコレクションがありますが、5つの要素のコレクションとして解釈し、各要素は2つの文字列のコレクションです)。ナイーブアルゴリズムは非常に単純ですが、非常に非効率的でもあります。コレクション〜16MB(文字列のリスト)を使用して、別のアプローチについて考えました。データをコピーせずに、単に再解釈します。したがって、コレクション全体からすべてのSIZE_OF_SLICE要素を選択する1つのイテレーターを作成します。また、最初のイテレーターから開始してSIZE_OF_SLICE要素に移動するこのスコープ付きイテレーターを作成します。

このようにして、データはその場で再利用されます。唯一の違いは、データを反復処理する方法です。スライスには十分で、高速である必要があります。

3

IListに効率的なスライスを実装しました(インデクサーがあると仮定すると、それは簡単です)が、気がかりです。リスト(LinkedList)と配列(List)の両方に一般的な効率的なアルゴリズムを提供することはできません(?)。したがって、これを読んでいて、その方法がわかっている場合は、10年経っても遠慮なく答えてください(C#がまだ残っていると仮定します)。

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

windows-phone-7 - 次の曲に進む前に、列挙を繰り返し、MediaPlayer の状態を確認します。

IEnumerable コレクションの曲を再生する必要がありますが、この方法には多くの問題があります。タイマーを使用して MediaState を確認すると機能する場合がありますが、このページから移動するとクラスがキャンセルされ、音楽が停止します。これをやりたい理由は、さまざまなアルバムの曲を再生できるようにするためです。

私のコード:

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

c#-2.0 - Rhino Mocks: IEnumerator のスタブ

私は小さな .net 2.0 プロジェクトを開発しています。IEnumerator を使用するクラスのメソッドをテストする必要があるところまで来ました。数日前にRhino Mocksの使い方を学んだので、次のテストを書きました

これはメソッドコードです

を実行しようとすると、最初の MoveNext() 注入値のみを使用してループを開始するため、停止しません。

誰かが私が間違っていることを指摘していただければ幸いです。

ありがとう

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

c# - C# で汎用 AVL ツリーをコンパイルするのに役立ちます (IEnumerator の問題)

実装しようとしている AVL ツリーでいくつかのコンパイル エラーが発生します。何かが列挙子全体を捨てています。ヘルパークラスを実装しようとするまで、問題なくコンパイルされました。BTNode 自体がプライベートのネストされたクラスであることに関係があると考えていましたが、何が起こるかを確認するためだけに公開しようとしましたが、役に立ちませんでした。

私はこれに少し困惑しています。変換が行われるべきではありません。

どんな助けでも大歓迎です。

ソース コードは次のとおりです。コンパイル エラーが発生している場所に注意し、読みやすくするためにさまざまなネストされたクラスを分割しました。

ノードクラス--

列挙ヘルパークラス --

--

--

追加...