答えて
私はこれが最も簡単ですかどうかわからないんだけど、それは間違いなく、最も効率的です。
var result = new object[list.Count];
for (int i = 0; i < list.Count; i++)
result[i] = list[i]; //Warning: Inevitable boxing happening here
編集を:あなたのリストを持つよりもインデックスで何とか遅い場合さIEnumerable<T>
インタフェース、その後、 for
ループをforeach
ループに置き換えてください。コンパイルされません
(個人的に私は、単にので、彼らは多数の内部オブジェクトを作成し、データを介して複数の非効率的なパスを実行する方法の、効率があってもリモートで関係している分野でEnumerable
」sの方法を嫌う。)
使用LINQ:
object[] arr = list.Cast<object>().ToArray();
myList.ToArray< object>();
。 – SLaks
'てToArray()')IEnumerableを
から呼び出され、そのてToArrayが(そこにあることはできませんが、唯一のToArray
使用List<T>.ToArray()
方法。ここではより多くのドキュメントhttp://msdn.microsoft.com/en-us/library/x303t819.aspx
彼は 'IList
これは 'int []'には 'object [] 'ではありません – CodesInChaos
- 1. LINQを使用して、IList <IList <object>>をIList <object>に変換する方法は?
- 2. 流暢NHibernateはIListの<string>
- 3. IList to IQueryable <T>
- 4. Expression.PropertyOrField on Interface IList <T> throw InvalidOperationException
- 5. シングル拡張メソッド<K、IEnumerableを/ IListの/ ICollectionを<V>>
- 6. IList <>。Reverse()はList <>()のように動作しません。逆
- 7. はSocket.BeginReceive(のIList <ArraySegment <byte>>バッファます。..ない非同期
- 8. IList <T> .FindIndex(Int32、述語<T>)
- 9. FSharpList <string> to IList <string> to XML
- 10. IList <T>をBindingListに変換する<T>
- 11. のIList
- 12. のIList
- 13. IList <T>またはIQueryable <T>をExcelに保存する - C#
- 14. IEnumerableまたはIListのforeach
- 15. IListの<T>を検索する反射を使用
- 16. XMLにオブジェクトをシリアル化:のIList <CustomObject>プロパティ例外
- 17. (Fluent)NHibernate - IList <MyClass>を単一の列にマッピングします。
- 18. 入れ子のインターフェイス:IDictionary <TKey、IEnumerable <TValue>>にIDictionary <TKey、IList <TValue>>をキャストしますか?
- 19. IList <T>にIEnumerableを取るInsertメソッドがない理由<T>?
- 20. IEnumerableとIListのヌル
- 21. はiList(HQLを選択)
- 22. IList <>をカール経由でパラメータとして渡す
- 23. IListを初期化する<T> C#
- 24. IList を渡すとIEnumerableを返す<T> with protobuf-net
- 25. ASP.NETリピータコントロールをIListにバインドする方法<String>?
- 26. IList <T>マルチマップ/縮小結果ですか?
- 27. IListを返す<T> vs Array in C#?
- 28. IList実装・テスト
- 29. Ilist and Iqueryable
- 30. LINQを使用してIList <T>をグループ化するには?
これはSLacksの提案よりも効率的ですか? – cs0815
ええ、 'Enumerable.Cast()'は直ちに破棄される新しい 'CastIterator'オブジェクトを作成します。また、SLaksのメソッドは配列全体を2回通過しますが、このメソッドは1回だけ通過します。さらに(この最後の理由はマイクロオプティマイゼーションの分野に入りますが、それでも有効です)配列を直接索引付けすることは、IList で索引付けする場合と比較しても、ポインタ以外のもので索引付けする方が高速です。 –
Mehrdad
@Lambert:なぜ2回アレイを通過するのですか? –