問題タブ [ienumerable]

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 投票する
5 に答える
5608 参照

ienumerable - IEnumerable2 つの GetEnumerator メソッドを提供しています - それらの違いは何ですか?

IEnumerable<T>インターフェイスを実装すると、return と otherの2 つのGetEnumeratorメソッドが表示されます。どちらかをいつ使用しますか?IEnumeratorIEnumerator<T>

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

c# - 渡すGetEnumが実行されるメソッドにと呼ばれる

を返すオブジェクトを持つAPIを使用しているIEnumerable<T>ので、のようなものです Object.GetEnum<T>

GetEnumを呼び出すメソッドがありますが、メソッドのパラメーターにパラメータータイプを渡す機能を追加したいと思います。たとえば、私は次のことを行います。

したがって、上記のように、myMethodのパラメーターの種類や、列挙子を取得するコードの記述方法がわかりません。apiClass1とapiClass2が継承するクラスである「apiClass」を渡してみました。しかし、それから何をすべきかについてそこで立ち往生しました…そして私はそれがとにかく本当にうまくいくとは思いません。

したがって、C#でこれを行う方法がわからないのか、それとも可能かどうかはわかりません…。または、APIに何かが欠けている(またはAPIにこれを容易にするための何かが欠けている)可能性があります。

ありがとうFKC

0 投票する
14 に答える
16723 参照

c# - C# またはスライディング ウィンドウ列挙子でのペアワイズ反復

次のような IEnumerable がある場合:

連続する項目のすべてのペア (サイズ 2 のスライディング ウィンドウ) をループしたいと思います。どれだろう

私の解決策はこれでした

このコードを書いたとき、ペアだけでなく任意のサイズのタプルに対して同じことを行う関数が .NET フレームワークに既にあるのではないかと考えました。私見は、この種のスライディングウィンドウ操作を行うための良い方法があるはずです。

私は C# 2.0 を使用しており、C# 3.0 (LINQ を使用) を使用すると、これを行うためのより多くの (そしてより良い) 方法があると想像できますが、主に C# 2.0 ソリューションに興味があります。ただし、C# 3.0 ソリューションも高く評価します。

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

c# - C# インターフェイスの質問

関数がそのインターフェイスのみを受け入れる特定のインターフェイスを実装する関数にオブジェクトを渡すと、コストがかかりますか? お気に入り:

そして私は渡します:

それらはすべてIEnumerableを実装しています。しかし、それらのいずれかを Change メソッドに渡すと、それらは IEnumerable にキャストされるので、キャスト コストだけでなく、固有のメソッドが失われるなどの問題もありますか?

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

c# - C# IEnumerable から IEnumerable に変換できませ

AddRange(IEnumerable) をリストに追加しようとすると、最近問題が発生しました。おそらく古典的な問題ですが、まだよくわかりません。

List パラメーターを期待するメソッドが List に満足していないことは理解しています。なぜなら、List に Base を追加しようとする可能性があるからです。これは明らかに不可能です。

しかし、これが正しく取得できれば、IEnumerables 自体は変更できないため、この場合は機能するはずです。

私が考えたコードは次のようになります。

AddRange2 メソッドでヒントをコンパイラに渡そうとしましたが、これは単に問題に移動しました。

私の考え方は間違っていますか?これは言語の制限ですか、それとも仕様によるものですか?

IIRC、Java 1.5でこのような操作のサポートが追加されたので、将来的にC#にも追加されるのではないでしょうか...?

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

c# - プリンシパル検索結果、ラムダ式

principalcollectionラムダ式と呼ばれるものを使用してエンティティを除外しようとしています。

これを機能させることができません。結果が得られません。 user.GetGroups()ユーザーがメンバーであるすべてのグループを返しますが、user.GetGroups().Where(....)何も返しません。

userprincipal user = Administrator とし
ましょう MyFilterString = "Exchange"
としましょう Administrator が次のグループのメンバーであるとしましょう:

ドメイン管理者 スキーマ管理者

私が期待しているのは、memberOfGroups に 2 つのグループが含まれるようになったことです。

しかし、それは空になってしまいます。少しの助けは大歓迎です。

サイモン・O・オルセン

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

delphi - IEnumerable.GetEnumerator() は Delphi 6 で IEnumVariant を返します

COM経由でDelphi 6で.Net2.0アセンブリを使用しています。インターフェイスの 1 つのメソッドの 1 つが IEnumerable を返します。にある mscorlib.tlb をインポートする限り、

"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"

、Delphi 6 では IEnumerable と IEnumerator の両方のインターフェイスにアクセスできます。mscorlib_TLB.pas で IEnumerable が定義されている部分は次のとおりです。

GetEnumerator メソッドの戻り値は IEnumerator ではなく、IEnumerator にキャストしようとすると、「インターフェイスがサポートされていません」という例外がスローされます。

以前にこれまたは同様の問題に遭遇した人はいますか? どうすれば解決できますか?