foreachループから返されたアイテムを特定のタイプに制限するための方法をここで見てきました。これは、正しく覚えていれば、IEnumerableのLINQ拡張とタイプチェックのラムダ。私は再びそれを見つけることができません、誰もこれが達成された方法を提案することができますか?タイプLINQ拡張を使用するforeachの制約事項
2
A
答えて
3
次のようにあなたは、どこに拡張メソッドの呼び出しでこれを行うことができます:
foreach(var x in theCollection.Where(i => i.GetType() == typeof(DesiredType))
{
// Do something to x
}
しかし、これはそれは.NETフレームワークに組み込まれているように有用であり、それがどのようなクリスです上を指しています。 IEnumerableにはOfTypeという拡張メソッドがあり、hereと記載されています。私は本当にあなたが「の項目は、foreachループから返された」との意味を理解していない
foreach(var x in theCollection.OfType<int>())
{
// Do something to x
}
+0
これは完全に同じではないことに注意してください.GetType()を呼び出して、等価演算子と比較すると、継承の状況で動作が異なります。 「is」演算子(すなわち、Where(i => iはDesiredType))はOfTypeに近い。 –
+0
はい、そうです。 OfTypeは "これをキャストできますか?"という質問をします。したがって、TypeのIsAssignableFrom()メソッドによく似ています。 –
8
これはお探しですか?
public static IEnumerable<TResult> OfType<TResult>(
this IEnumerable source
)
関連する問題
- 1. IronPythonでLINQタイプと拡張メソッドを使用できますか?
- 2. タイプ引数エラーLINQの拡張メソッド
- 3. LINQの拡張メソッド - GetYearWeekFormat拡張
- 4. GoogleプレイスJavaScript APIの使用に関する制限事項
- 5. LINQの拡張メソッド
- 6. 制限付きの制約タイプとタイプファミリーを '限定された'制約付きで使用する
- 7. Mongoid embeds_manyタイプ制約
- 8. イメージストリームを使用して拡張タイプを決定する
- 9. Linq効率の問題 - foreach vs集約
- 10. CoreBluetoothの制限事項
- 11. NhQueryable LINQ拡張メソッド?
- 12. Outlook:VSTO 4 + Linq拡張?
- 13. foreach-objectの$ _の変数の拡張?
- 14. CreateIconIndirectを使用するカスタムカーソルの制限事項はありますか?
- 15. NHibernate Linqプロバイダを拡張する
- 16. LINQ-to-SQL:トリガーを使用した同じ参照制約
- 17. 拡張多項式NTL
- 18. LINQとCount拡張メソッド
- 19. Java拡張forループ.NETループforeach
- 20. LINQ to SQL:列のエイリアスを使用してエンティティクラスを拡張する方法
- 21. タイプ制約を持つGADTのFunctorインスタンス
- 22. Chromiumにローカル拡張を強制する
- 23. SaveDialogで拡張を強制する
- 24. google appsスクリプトUrlFetchApp.fetchの制限事項
- 25. クラスとメソッドレベルの汎用タイプの制約の相互作用
- 26. in_set/2制約を使用する
- 27. ASP.NET MVC拡張メソッドヒントが、拡張タイプをParamリストに表示する
- 28. 拡張WPF Toolkitを使用
- 29. アーキテクチャサブアプリケーションを使用したWebアプリケーションの推奨事項/推奨事項
- 30. 拡張クラス内の拡張メソッド自体を使用して
:それを使用する
、あなたはこのような何かをしたいです。 –
@Thomasでは、foreachループは実際には個々のアイテムではなく列挙子を作成し、列挙子はオブジェクトを返す( 'returns')オブジェクトですが、私は簡潔さを目指していました。 – ProfK