私はIEnumerable<IEnumerable<string>>
を返す関数を持っています。この関数を基本として、IEnumerable
を基にして、List<List<string>>
に割り当てたいと思います。 1つのディメンション(つまり1つのコレクション)を持っていて、ToList()
メソッドを使用して解決すると、これは簡単ですが、各アイテムを反復することなくIEnumerable<IEnumberable<string>>
の場合はどうすればよいですか?コレクションのコレクションをキャスト - C#
1
A
答えて
6
あなたは、このトピック(J.Skeet)でおそらく最高のリソース(MSDNから)例えば
PetOwner[] petOwners =
{ new PetOwner { Name="Higa, Sidney",
Pets = new List<string>{ "Scruffy", "Sam" } },
new PetOwner { Name="Ashkenazi, Ronen",
Pets = new List<string>{ "Walker", "Sugar" } },
new PetOwner { Name="Price, Vernette",
Pets = new List<string>{ "Scratches", "Diesel" } } };
// Query using SelectMany().
IEnumerable<string> query1 = petOwners.SelectMany(petOwner => petOwner.Pets);
を使用することができます。
Reimplementing LINQ to Objects: Part 9 - SelectMany
ここで別の例ですあなたの質問にお答えしましたList<List<string>>
:
var lists = new List<List<string>>();
lists.Add(new List<String>(new[] { "A", "B", "C" }));
lists.Add(new List<String>(new[] { "D", "E", "F", "G" }));
lists.Add(new List<String>(new[] { "H", "I", "J", "K", "L" }));
var all = lists.SelectMany(i => i);
String allLetters= String.Format("All letters: {0}",String.Join(",",all));
+2
+1の完全性。 –
1
IEnumerable<IEnumerable<T>>
のようなものがあるとします。次のような方法でフラット化することができます:YourList.SelectMany(x => x)
。
関連する問題
- 1. コレクションへのキャスト
- 2. NHibernate:コレクションのコレクションのコレクション
- 3. コレクションはC#
- 4. C#ジェネリックとコレクション
- 5. コレクションのコレクション
- 6. Backbone.jsコレクションのコレクション
- 7. C# - 定数のコレクション
- 8. C#の属性コレクション
- 9. C#コレクションの表現
- 10. コレクションの操作C#
- 11. バックボーンjsコレクションのコレクション
- 12. C#コレクションをインターフェイスのコレクションとして渡す
- 13. あるコレクションから別のコレクションにデータをコピーするC#
- 14. C#ラージオブジェクトの中サイズのコレクション
- 15. 公開前のコレクションのコレクション
- 16. C#でコレクションをフィルタリングする
- 17. C#コレクションのランキング検索
- 18. C#listboxコレクションの構文
- 19. nhibernate3 query - コレクションを含むコレクション
- 20. コレクションのコレクションでXMLを生成
- 21. コレクションを参照するコレクションを参照するコレクションのMongoIDクエリ
- 22. VB.NET LINQ - コレクション内のコレクションの数?
- 23. Javaのコレクションのコレクションを翻訳する
- 24. Backbone.js - コレクションのコレクションと複数のコレクションの比較
- 25. Linqからのコレクション内のコレクション
- 26. javaコレクションとコレクションのフレームワークのマップ
- 27. Scalaの一般的なコレクションのコレクション
- 28. C#で匿名型のコレクションを返す
- 29. オプションの[X]コレクションのコレクションをXのコレクションに変換する方法
- 30. Backbone.js - コレクションを参照してコレクションを別の(兄弟)コレクションに追加
私はあなたがすべての項目を反復しなければならないと思います、IEnumerableは反復のみをサポートします。それはオブジェクトが何の下にあるかに依存します!いくつかのコード? – Liam
もう少し詳しく説明する必要があると思います。 「もし私がちょうど1つの次元を持っていたら」とはどういう意味ですか?また、アイテムのリストを反復せずに作成することもできません。どのようにリストが生成されますか? IEnumerableは必ずしも「具体的」ではありません。つまり、列挙可能な各項目は、アクセスするまで存在しない可能性があります。 –
1次元では1次元を意味します... 1リストのように。 2次元はリストのリストです.1dと2dの配列と同じです... – user559142