System.Collections.Generic.IEnumerator System.Collections.IEnumerator . : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , , Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # : IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
, List.ForEach , Action<>
, . callvirt IL , , callvirt. , , List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , , List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , , IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, . using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .
インスタンスを使用して、多数のパッケージ化操作をきちんと回避します
System.Collections.Generic.IEnumerator System.Collections.IEnumerator
. : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , , Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # : IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
, List.ForEach , Action<>
, . callvirt IL , , callvirt. , , List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , , List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , , IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, . using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .
System.Collections.Generic.IEnumerator System.Collections.IEnumerator
. : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , , Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # : IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
, List.ForEach , Action<>
, . callvirt IL , , callvirt. , , List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , , List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , , IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, . using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .
System.Collections.Generic.IEnumerator System.Collections.IEnumerator
. : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , , Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # : IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
, List.ForEach , Action<>
, . callvirt IL , , callvirt. , , List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , , List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , , IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, . using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .
System.Collections.Generic.IEnumerator System.Collections.IEnumerator
. : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , , Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # : IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
, List.ForEach , Action<>
, . callvirt IL , , callvirt. , , List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , , List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , , IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, . using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .
System.Collections.Generic.IEnumerator System.Collections.IEnumerator
. : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , , Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # : IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
, List.ForEach , Action<>
, . callvirt IL , , callvirt. , , List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , , List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , , IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, . using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .
System.Collections.Generic.IEnumerator System.Collections.IEnumerator
. : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , , Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # : IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
, List.ForEach , Action<>
, . callvirt IL , , callvirt. , , List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , , List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , , IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, . using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .
System.Collections.Generic.IEnumerator System.Collections.IEnumerator
. : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , , Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # : IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
, List.ForEach , Action<>
, . callvirt IL , , callvirt. , , List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , , List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , , IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, . using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .
System.Collections.Generic.IEnumerator System.Collections.IEnumerator
. : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , , Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # : IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
, List.ForEach , Action<>
, . callvirt IL , , callvirt. , , List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , , List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , , IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, . using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .
-
System.Collections.Generic.IEnumerator System.Collections.IEnumerator
. : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , ,Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # :IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
,List.ForEach , Action<>
, . callvirt IL , , callvirt. , ,List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , ,List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , ,IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, .using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .
System.Collections.Generic.IEnumerator System.Collections.IEnumerator
. : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , ,Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # :IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
,List.ForEach , Action<>
, . callvirt IL , , callvirt. , ,List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , ,List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , ,IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, .using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .
System.Collections.Generic.IEnumerator System.Collections.IEnumerator
. : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , ,Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # :IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
,List.ForEach , Action<>
, . callvirt IL , , callvirt. , ,List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , ,List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , ,IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, .using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .
System.Collections.Generic.IEnumerator System.Collections.IEnumerator
. : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , ,Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # :IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
,List.ForEach , Action<>
, . callvirt IL , , callvirt. , ,List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , ,List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , ,IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, .using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .
System.Collections.Generic.IEnumerator System.Collections.IEnumerator
. : " ?" , , , , .
NET Framework 2.0 ( . : , ) , , . , ,Action, Converter<TInput,TOutput>
Predicate, . , . , . , List.ForEach(Action). , ForEach , Foreach?
:
long Sum(List<int> intList) { long result = 0; foreach (int i in intList) result += i; return result; }
C# IL , :
long Sum(List<int> intList) { long result = 0; List<T>.Enumerator enumerator = intList.GetEnumerator(); try { while (enumerator.MoveNext()) { int i = enumerator.Current; result += i; } } finally { enumerator.Dispose(); } return result; }
, C # :IEnumerator .MoveNext () IEnumerator .Current. List.Enumerator ( IEnumerator) IL callvirt, .
, :
long Sum(List<int> intList) { long result = 0; intList.ForEach(delegate(int i) { result += i; }); result result; } , : long Sum(List<int> intList) { long result = 0; intList.ForEach(i => result += i); return result; }
,List.ForEach , Action<>
, . callvirt IL , , callvirt. , ,List.ForEach .
, , List :
for (int i = 0; i < List.Count; i++)
for (int i = 0; i < NUM_ITEMS; i++)
foreach (int i in List)
List.ForEach(delegate(int i) { result += i; });
, :
. , ,List.ForEach , ! , ( ) Foreach , . , , , List.ForEach .
, , " ":
, , , , 50% . ForEach- 20%. List.ForEach , , - Foreach- . List.ForEach , Foreach.
, Dell Inspiron 9400 Core Duo T2400 2 . , : ForEachTest.zip (3,82 ).
, , . 5 , 10000000 50000000 .
:
:
: ForEach List, . Array.ForEach
( ) , foreach. , ,IEnumerator foreach- . , IL, . , foreach , , Array.ForEach
.
:
.. Unity3D C#, .using UnityEngine; using System.Collections; using System.Collections.Generic; public class testspeed : MonoBehaviour { public enum LoopType {none, for_loop, for_loop_no_count, foreach_loop, ListintForEach} public LoopType type; public int Count=2; public int iterationCount=1000; private List<int> lint = new List<int>(); private int[] alint; private long result; void Start () { for (int i = 0 ; i<Count; i++) {int r=UnityEngine.Random.Range(0,1000); lint.Add(r);} } void Update () { for (int j =0; j<iterationCount;j++) { result=0; switch (type) { case LoopType.for_loop: for (int i = 0; i < lint.Count; i++) {result += lint[i];} break; case LoopType.for_loop_no_count: for (int i = 0; i < Count; i++){result += lint[i];} break; case LoopType.foreach_loop: foreach (int i in lint) {result += i;} break; case LoopType.ListintForEach: lint.ForEach(i => result += i); break; } } } }
, , , 1000 . 1000 , . , , .
:
, . ForEach .