問題タブ [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 投票する
10 に答える
19624 参照

c# - コレクションが変更されました。LIstBoxからListItemを削除すると、列挙がエラーを実行しない場合があります

lstAvailableColorsとlstSelectedColorsの2つのリストボックスがあります。各リストボックスの間には、[追加]と[削除]の2つのボタンがあります。lstAvailableColorsで1つまたは複数の色を選択し、[追加]ボタンをクリックした場合、それらをlstAvailableColorsから削除して、lstSelectedColorsに表示したいと思います。また、lstSelectedColorsで色が選択されていて、[削除]ボタンをクリックした場合、lstSelectedColorsから色を削除して、lstAvailableColorsに追加し直したいと思います。これを行うと、アイテムが削除されるときに次のエラーが発生します。

コレクションが変更されました。列挙操作が実行されない場合があります。

追加ボタンと削除ボタンのコードは次のとおりです。

追加:

削除する:

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

c# - linqの「SelectNew」は評価/ロードをトリガーしますか?

私は現在IEnumerable<T>、ParentIdプロパティを介して相互に参照するオブジェクトのフラットリストから階層を構築するために実装するクラスを作成しようとしています。このための流暢なインターフェースを書きたいので、このようなことができます

NodeHierarchy : IEnumerable<TabNode>それで、yieldステートメントについて、クラス内でこのようなことができるかどうか疑問に思います。

または私がこのようなことをしなければならないかどうか:

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

.net - C++ での GetEnumerator の実装

C# には次のクラスがあり、問題なくコンパイルされます。

class CustomItem { }

C++ で同じことをしようとすると、いくつかのコンパイラ エラーが発生します。

ref class CustomItemValue { };

コンパイラからのエラー メッセージは次のとおりです。

.\mc.cpp(38) : error C2556: 'System::Collections::IEnumerator ^CustomList::GetEnumerator(void)' : overloaded function differs only by return type from 'System::Collections::Generic::IEnumerator ^CustomList::GetEnumerator(void)' with [ T=CustomItem ] .\mc.cpp(36) : see declaration of 'CustomList::GetEnumerator' .\mc.cpp(38) : error C2371: 'CustomList::GetEnumerator' : redefinition; different basic types .\mc.cpp(36) : see declaration of 'CustomList::GetEnumerator'

誰でもこれで私を助けることができますか?

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

c# - resxファイルへのLINQ?

.resx実行時に特定のファイル内の特定のテキストのキーを取得する方法を構築しようとしています。

現在、ファイルを開いて読み取ることができますResXResourceReaderが ( を使用)、foreachファイル全体を調べるには a を使用する必要があります。

.resx一部のファイルはかなり大きく (2000 文字列程度)、これを頻繁に行う可能性があるため、これはパフォーマンスの問題である可能性があります。

メソッドが比較的最適化されていると想定しているため、LINQ to Objects を使用してこれをクエリしたいと思いますが、whereそうすることができませんでした。ResXResourceReaderクラスには と の 2 つのメソッドがAsQueryable()ありますGetEnumerator()が、どちらもその結果に対する LINQ を許可しません (from n in reader.AsQueryable() where失敗します)。

によって提供されるものに対して LINQ を実行するにはどうすればよいResXResourceReaderですか、それとも時間の価値があるでしょうか?

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

c# - C#:IOrderedEnumerableを返すことは可能ですか?

?でまたはメソッドIOrderedEnumerable<T>を使用せずにメソッドからを返すことは可能ですか?OrderByOrderByDescendingIEnumerable<T>

多分そうではないと思います...しかし...多分私は間違っていますか?


理由:主に好奇心。数字の数字を返すときにこの答えを出すとき、それはちょっと私を襲った。そして、私のメソッドは、指定された数値の重みに従って、昇順で数字を返します。ですから、フレームワークが順序付けられていると認識できるように順序付けられて出てきたらいいのではないかと思いました。もちろん、一般的な数の観点から、それらは注文されていなかったと主張することができます。しかし、ええ...彼らがすべきかすべきでないかはここでのポイントではありませんでした。それが可能であったかどうかにかかわらず。

私はまた、anが単なる別の名前IOrderedEnumerable<T>以上のものであるかどうかについての質問を暗示していると思います(または少なくとも今はそうです)。IEnumerable<T>それ以上何か含まれていますか?ThenByとメソッドがあることは知っていますが、ThenByDescendingそれらはの内部で何かを使用していますか、それともIOrderedEnumerable<T>直接使用する意味がないというだけIEnumerable<T>ですか?

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

.net - LinqtoSqlクラスをIEnumerableにするにはどうすればよいですか

Linq to SqlクラスIEnumerableまたはオブジェクトIEnumerableをC#3.0で作成するにはどうすればよいですか?

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

c# - LINQを使用してlongの列挙を単一の文字列に変換する方法

long(IEnumerable)の列挙をLINQを使用して単一の文字列(文字列)に変換する簡単でクリーンな方法(1行)があるかどうか疑問に思っていますか?

ありがとう

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

c# - C# で 2 つの IEnumerable の各要素ペアに対して foreach を実行する方法はありますか?

それらをリストに変換し、インデックスを使用して通常の for ループを使用することもできますが、それらを IEnumerables として保持する方法があるかどうか疑問に思っています。

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

c# - 列挙の高速化: 配列列挙の活用

そのため、内部に配列を持つクラスがあります。現在、クラスのアイテムを列挙するための私の戦略は、コードを使用することですforeach (item x in classInstance.InsideArray). foreach (item x in classInstance)むしろ、配列を使用してプライベートにしたいと思います。私の主な関心事は、遅いものを避ける必要があるということです。配列は頻繁にヒットします (数百の項目があります)。この配列の列挙が安価であることが重要です。1つの考えは、クラスを実装するだけIEnumerable<item>でしInsideArray.getEnumerator()たが、非ジェネリック列挙子しか提供しませんでした。IEnumerableインターフェイスも実装してみました。これは機能しましたが、おそらくボクシングが原因で非常に遅くなりました。

パフォーマンスに影響を与えずにクラス自体を列挙可能にする方法はありますか?

通常コード:

調整された、はるかに遅いコード:

注: 非ジェネリック イテレータの実装を追加することは可能であり、私の遅いソリューションよりも高速ですが、配列を直接使用するよりも少し悪いです。どういうわけかC#に「ねえ、このオブジェクトを反復処理するように頼んだら、配列を反復処理するのと同じくらい速い」と伝える方法があることを望んでいましたが、明らかにそれは不可能です...少なくとも提案された回答からこれまで。