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

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

7
IQueryableとIEnumerableの違いは何ですか
私は違いについて混乱しています。.Netはかなり新しいのでIEnumerables、Linq拡張機能を使用してクエリを実行できます。これは何でIQueryable、どう違うのですか? 関連項目IQueryable [T]とIEnumerable [T]の違いは何ですか?この質問と重複しています。


12
IEnumerableの要素のインデックスを取得する方法は?
私はこれを書いた: public static class EnumerableExtensions { public static int IndexOf&lt;T&gt;(this IEnumerable&lt;T&gt; obj, T value) { return obj .Select((a, i) =&gt; (a.Equals(value)) ? i : -1) .Max(); } public static int IndexOf&lt;T&gt;(this IEnumerable&lt;T&gt; obj, T value , IEqualityComparer&lt;T&gt; comparer) { return obj .Select((a, i) =&gt; (comparer.Equals(a, value)) ? i : -1) …
144 c#  .net  linq  ienumerable  indexof 

5
メンバーコレクションを公開するためのReadOnlyCollectionまたはIEnumerable?
呼び出しコードがコレクションを反復するだけの場合、内部コレクションをIEnumerableではなくReadOnlyCollectionとして公開する理由はありますか? class Bar { private ICollection&lt;Foo&gt; foos; // Which one is to be preferred? public IEnumerable&lt;Foo&gt; Foos { ... } public ReadOnlyCollection&lt;Foo&gt; Foos { ... } } // Calling code: foreach (var f in bar.Foos) DoSomething(f); ご覧のとおり、IEnumerableはReadOnlyCollectionのインターフェイスのサブセットであり、ユーザーがコレクションを変更することはできません。したがって、IEnumberableインターフェースで十分な場合は、それを使用します。それはそれについて推論する適切な方法ですか、それとも何か不足していますか? ありがとう/ Erik

3
この文字列拡張メソッドが例外をスローしないのはなぜですか?
IEnumerable&lt;int&gt;文字列内の部分文字列のすべてのインデックスを返すC#文字列拡張メソッドがあります。それは意図した目的に完全に機能し、期待される結果が返されます(以下のテストではなく、私のテストの1つで証明されています)が、別の単体テストで問題が発見されました:null引数を処理できません。 これが私がテストしている拡張メソッドです: public static IEnumerable&lt;int&gt; AllIndexesOf(this string str, string searchText) { if (searchText == null) { throw new ArgumentNullException("searchText"); } for (int index = 0; ; index += searchText.Length) { index = str.IndexOf(searchText, index); if (index == -1) break; yield return index; } } 問題を報告したテストは次のとおりです。 [TestMethod] [ExpectedException(typeof(ArgumentNullException))] public void Extensions_AllIndexesOf_HandlesNullArguments() …

4
Entity FrameworkのICollection <T>とList <T>
最初にいくつかのEntity Frameworkアプリケーションの設計に取り掛かる前に、私はいくつかのWebキャストだけを見ました。あまりドキュメントを読んでいなかったので、今は苦しんでいるような気がします。 私はList&lt;T&gt;自分のクラスで使用していますが、うまくいきました。 今、私はいくつかのドキュメントを読みました、そしてそれは私が使うべきだったと述べていICollection&lt;T&gt;ます。私はこれに変更しましたが、モデルコンテキストが変更されることすらありませんでした。両方のためですList&lt;T&gt;とICollection&lt;T&gt;継承IEnumerable&lt;T&gt;、それが実際にEFのために必要なものでしょうか? ただし、これが当てはまる場合、EFのドキュメントIEnumerable&lt;T&gt;に、代わりにEFのドキュメントに必要と記載されていないのはなぜICollection&lt;T&gt;ですか? いずれにせよ、私が行ったことにマイナス面はありますか、それとも変更すべきですか?

6
辞書の要素の順序
私の質問は、辞書要素の列挙についてです // Dictionary definition private Dictionary&lt;string, string&gt; _Dictionary = new Dictionary&lt;string, string&gt;(); // add values using add _Dictionary.Add("orange", "1"); _Dictionary.Add("apple", "4"); _Dictionary.Add("cucumber", "6"); // add values using [] _Dictionary["banana"] = 7; _Dictionary["pineapple"] = 7; // Now lets see how elements are returned by IEnumerator foreach (KeyValuePair&lt;string, string&gt; kvp in _Dictionary) …

5
AsQueryable()の目的は何ですか?
の目的は、期待する可能性のあるメソッドにをAsQueryable()渡すことができるようにすることですか、それとも次のように表すのに役立つ理由がありますか?たとえば、次のような場合が想定されています。IEnumerableIQueryableIEnumerableIQueryable IEnumerable&lt;Order&gt; orders = orderRepo.GetAll(); // I don't want to create another method that works on IEnumerable, // so I convert it here. CountOrders(orders.AsQueryable()); public static int CountOrders(IQueryable&lt;Order&gt; ordersQuery) { return ordersQuery.Count(); } それとも実際に何か違うことをするのですか? IEnumerable&lt;Order&gt; orders = orderRepo.GetAll(); IQueryable&lt;Order&gt; ordersQuery = orders.AsQueryable(); IEnumerable&lt;Order&gt; filteredOrders = orders.Where(o =&gt; o.CustomerId == 3); …


8
1つのIEnumerableに別のIEnumerableのすべての要素が含まれているかどうかを確認する
両方のコレクションの各要素のフィールド/プロパティを比較するときに、あるIEnumerableに別のIEnumerableのすべての要素が含まれているかどうかを判断する最も速い方法は何ですか? public class Item { public string Value; public Item(string value) { Value = value; } } //example usage Item[] List1 = {new Item("1"),new Item("a")}; Item[] List2 = {new Item("a"),new Item("b"),new Item("c"),new Item("1")}; bool Contains(IEnumerable&lt;Item&gt; list1, IEnumerable&lt;Item&gt;, list2) { var list1Values = list1.Select(item =&gt; item.Value); var list2Values = list2.Select(item =&gt; …
102 c#  .net  linq  ienumerable 


14
IList <T>ではなく常にIEnumerable <T>を返す必要がありますか?
アイテムのセットを返すDALまたはその他のコードを書いているとき、常にreturnステートメントを作成する必要があります。 public IEnumerable&lt;FooBar&gt; GetRecentItems() または public IList&lt;FooBar&gt; GetRecentItems() 現在、私のコードではIEnumerableを可能な限り使用しようとしていますが、これがベストプラクティスであるかどうかはわかりません。私が最も一般的なデータ型を返しながら、それが何をするのかを説明していたので、それは正しいように見えましたが、おそらくこれは正しくありません。
97 c#  ienumerable 



10
キー「xxx」を持つタイプ「IEnumerable <SelectListItem>」のViewDataアイテムはありません。
Stack Overflowにはこれに関する投稿がいくつかありますが、私の現在の状況で問題を解決しているように見える答えはありません。 テーブルのあるページがあり、各行にはいくつかのテキストフィールドとドロップダウンがあります。すべてのドロップダウンで同じSelectListデータを使用する必要があるため、次のように設定しました。 コントローラ ViewData["Submarkets"] = new SelectList(submarketRep.AllOrdered(), "id", "name"); 見る &lt;%= Html.DropDownList("submarket_0", (SelectList)ViewData["Submarkets"], "(none)") %&gt; 私は多くの場所でこの設定を正確に使用しましたが、この特定のビューで何らかの理由でエラーが発生します: キー「submarket_0」を持つタイプ「IEnumerable」のViewDataアイテムはありません。

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