答えて
私はこれが最も簡単ですかどうかわからないんだけど、それは間違いなく、最も効率的です。
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. IList <IList<T>> to IReadonlyCollection <IReadonlyCollection >
- 2. LINQを使用して、IList <IList <object>>をIList <object>に変換する方法は?
- 3. ReadOnlyCollection <string>とのIList <string>
- 4. 流暢NHibernateはIListの<string>
- 5. IList to IQueryable <T>
- 6. paramsとIList <T>コンストラクタのマージ
- 7. C#DynamoDB複合型IList <T>コンバータ
- 8. Expression.PropertyOrField on Interface IList <T> throw InvalidOperationException
- 9. シングル拡張メソッド<K、IEnumerableを/ IListの/ ICollectionを<V>>
- 10. のIList
- 11. のIList
- 12. IList <>。Reverse()はList <>()のように動作しません。逆
- 13. はSocket.BeginReceive(のIList <ArraySegment <byte>>バッファます。..ない非同期
- 14. IList <T>をBindingListに変換する<T>
- 15. IList <T> .FindIndex(Int32、述語<T>)
- 16. FSharpList <string> to IList <string> to XML
- 17. IList <IWebElement>はPageObjectで動作できますか?
- 18. Enumerable.Empty <T>()はIListに相当しますか?
- 19. IList <T>またはIQueryable <T>をExcelに保存する - C#
- 20. Dictionary <Guid、IList <String>>を辞書に入れる<string、IList <Guid>> LINQを使用していますか?
- 21. IEnumerableまたはIListのforeach
- 22. InvalidCastExceptionがIListの
- 23. IListへの引数の記入<node>
- 24. IListの特定のアイテムにアクセス<T>タイプ
- 25. IListのための流暢なNHibernateマッピング<int>?
- 26. DatagridviewからIListへのすべての行<Object>
- 27. IListの<T>を検索する反射を使用
- 28. (Fluent)NHibernate - IList <MyClass>を単一の列にマッピングします。
- 29. XMLにオブジェクトをシリアル化:のIList <CustomObject>プロパティ例外
- 30. IList <IWebElement>の要素を辞書にマージ
これはSLacksの提案よりも効率的ですか? – cs0815
ええ、 'Enumerable.Cast()'は直ちに破棄される新しい 'CastIterator'オブジェクトを作成します。また、SLaksのメソッドは配列全体を2回通過しますが、このメソッドは1回だけ通過します。さらに(この最後の理由はマイクロオプティマイゼーションの分野に入りますが、それでも有効です)配列を直接索引付けすることは、IList で索引付けする場合と比較しても、ポインタ以外のもので索引付けする方が高速です。 –
Mehrdad
@Lambert:なぜ2回アレイを通過するのですか? –