タグ付けされた質問 「ienumerable」

IEnumerableとその対応する一般的なIEnumerable <T>は、アイテムのコレクションを反復処理(または列挙)するための.NETインターフェイスです。

14
IEnumerable <T>とIQueryable <T>を返す
帰国の違いは何であるIQueryable&lt;T&gt;対のIEnumerable&lt;T&gt;一方が他方よりも優先されなければならないときは、? IQueryable&lt;Customer&gt; custs = from c in db.Customers where c.City == "&lt;City&gt;" select c; IEnumerable&lt;Customer&gt; custs = from c in db.Customers where c.City == "&lt;City&gt;" select c;


10
IEnumerableとList-何を使用するか それらはどのように機能しますか?
EnumeratorsとLINQの動作に疑問があります。次の2つの単純な選択を検討してください。 List&lt;Animal&gt; sel = (from animal in Animals join race in Species on animal.SpeciesKey equals race.SpeciesKey select animal).Distinct().ToList(); または IEnumerable&lt;Animal&gt; sel = (from animal in Animals join race in Species on animal.SpeciesKey equals race.SpeciesKey select animal).Distinct(); これがより一般的な例のように見えるように、元のオブジェクトの名前を変更しました。クエリ自体はそれほど重要ではありません。私が聞きたいのはこれです: foreach (Animal animal in sel) { /*do stuff*/ } 私がを使用するとIEnumerable、 "sel"(この場合はIEnumerable)をデバッグして検査すると、いくつかの興味深いメンバーが含まれていることに気付きました: "inner"、 "outer"、 …
676 c#  linq  list  ienumerable 



18
IEnumerable <T>として単一の項目を渡す
パラメータTを必要とするメソッドにタイプの単一の項目を渡す一般的な方法はあり IEnumerable&lt;T&gt;ますか?言語はC#、フレームワークバージョン2.0です。 現在、ヘルパーメソッドを使用しています(それは.Net 2.0なので、LINQに似たキャスト/投影ヘルパーメソッドがたくさんあります)が、これはばかげているように見えます。 public static class IEnumerableExt { // usage: IEnumerableExt.FromSingleItem(someObject); public static IEnumerable&lt;T&gt; FromSingleItem&lt;T&gt;(T item) { yield return item; } } もちろん、List&lt;T&gt;またはを作成してデータを入力し、のArray代わりに渡す方法もありIEnumerable&lt;T&gt;ます。 [編集]拡張メソッドとして、次のような名前が付けられます: public static class IEnumerableExt { // usage: someObject.SingleItemAsEnumerable(); public static IEnumerable&lt;T&gt; SingleItemAsEnumerable&lt;T&gt;(this T item) { yield return item; } } ここで何か不足していますか? [編集2]someObject.Yield()(以下のコメントで@Peterが示唆しているように)この拡張メソッドの主な名前は簡潔にするために最適な名前であることがわかりました。 public static class …
377 c#  .net  generics  ienumerable 

6
空のIEnumerableを返すにはどうすればよいですか?
次のコードとこの質問の提案を踏まえて、この元のメソッドを変更し、IEnumarableに値があるかどうかを確認し、値がないIEnumerableを返さない場合はそれを返すことにしました。 メソッドは次のとおりです。 public IEnumerable&lt;Friend&gt; FindFriends() { //Many thanks to Rex-M for his help with this one. //https://stackoverflow.com/users/67/rex-m return doc.Descendants("user").Select(user =&gt; new Friend { ID = user.Element("id").Value, Name = user.Element("name").Value, URL = user.Element("url").Value, Photo = user.Element("photo").Value }); } すべてがreturnステートメントの中にあるので、どうすればよいのかわかりません。このようなものでしょうか? public IEnumerable&lt;Friend&gt; FindFriends() { //Many thanks to Rex-M for his help with …
329 c#  ienumerable 


8
イールドリターンを使用したIEnumerableおよびRecursion
を持っています IEnumerable&lt;T&gt;WebFormsページでコントロールを見つけるために使用しメソッドがあります。 メソッドは再帰的でありyield return、再帰呼び出しの値がreturnigであるときに、必要なタイプを返すときに問題が発生します。 私のコードは次のようになります: public static IEnumerable&lt;Control&gt; GetDeepControlsByType&lt;T&gt;(this Control control) { foreach(Control c in control.Controls) { if (c is T) { yield return c; } if(c.Controls.Count &gt; 0) { yield return c.GetDeepControlsByType&lt;T&gt;(); } } } これは現在、「式の型を変換できません」エラーをスローします。ただし、このメソッドがtypeを返す場合IEnumerable&lt;Object&gt;、コードはビルドされますが、誤ったタイプが出力に返されます。 yield return再帰を使用しながら使用する方法はありますか?

16
誰かがIEnumerableとIEnumeratorを私に説明できますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 11ヶ月前に閉鎖。 この質問を改善する 誰かがIEnumerableとIEnumeratorを私に説明できますか? たとえば、foreachでいつ使用するのですか?IEnumerableとIEnumeratorの違いは何ですか?なぜそれを使用する必要があるのですか?

6
List <X>からList <Y>にキャストするための短い構文?
次のように、アイテムのリストをあるタイプから別のタイプにキャストすることは可能です(オブジェクトにキャストを実行するための静的で明示的な演算子メソッドがある場合)。 List&lt;Y&gt; ListOfY = new List&lt;Y&gt;(); foreach(X x in ListOfX) ListOfY.Add((Y)x); しかし、リスト全体を一度にキャストすることは不可能ですか?例えば、 ListOfY = (List&lt;Y&gt;)ListOfX;
237 c#  list  casting  ienumerable 


2
IEnumerable <KeyValuePair <>>から辞書を再作成する
を返すメソッドがありますがIEnumerable&lt;KeyValuePair&lt;string, ArrayList&gt;&gt;、一部の呼び出し元は、メソッドの結果を辞書にする必要があります。をに変換しIEnumerable&lt;KeyValuePair&lt;string, ArrayList&gt;&gt;てDictionary&lt;string, ArrayList&gt;使用できるようにするにはどうすればよいTryGetValueですか? 方法: public IEnumerable&lt;KeyValuePair&lt;string, ArrayList&gt;&gt; GetComponents() { // ... yield return new KeyValuePair&lt;string, ArrayList&gt;(t.Name, controlInformation); } 発信者: Dictionary&lt;string, ArrayList&gt; actual = target.GetComponents(); actual.ContainsKey("something");

6
イールドリターンを含むすべての列挙型を一度に返します。ループせずに
カードの検証エラーを取得する次の関数があります。私の質問は、GetErrorsの扱いに関するものです。両方のメソッドの戻り値の型は同じIEnumerable&lt;ErrorInfo&gt;です。 private static IEnumerable&lt;ErrorInfo&gt; GetErrors(Card card) { var errors = GetMoreErrors(card); foreach (var e in errors) yield return e; // further yield returns for more validation errors } エラーGetMoreErrorsを列挙せずにすべてのエラーを返すことは可能ですか? 考えてみると、これはおそらくばかげた質問ですが、私が間違っていないことを確認したいと思います。

22
IEnumerableがnullまたは空かどうかを確認する方法
私はstring.IsNullOrEmpty方法が大好きです。IEnumerableに同じ機能を許可するものが欲しいです。そのようなものはありますか?たぶんコレクションヘルパークラス?私が尋ねる理由は、ifステートメントでは、パターンがそうだとコードが乱雑に見えるからです(mylist != null &amp;&amp; mylist.Any())。持つ方がはるかにクリーンになりますFoo.IsAny(myList)。 この投稿はその答えを与えません:IEnumerableは空ですか?。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.