fork(1) download
  1. using static System.Console;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Diagnostics;
  5.  
  6. public class Program {
  7. public static void Main() {
  8. var lista = new List<Classe>();
  9. for (int i = 0; i < 66000; i++) {
  10. lista.Add(new Classe() { Campo = "teste" + i.ToString() });
  11. }
  12. lista.Add(new Classe() { Campo = "MeuNome" });
  13. var relogio = new Stopwatch();
  14. relogio.Start();
  15. var teste = "";
  16. for (int i = 0; i < lista.Count; i++) {
  17. if (lista[i].Campo == "MeuNome") {
  18. teste = lista[i].Campo;
  19. break;
  20. }
  21. }
  22. relogio.Stop();
  23. WriteLine("Resultado do for: {0}", teste);
  24. WriteLine(relogio.ElapsedTicks);
  25. relogio.Restart();
  26. teste = "";
  27. foreach (var i in lista) {
  28. if (i.Campo == "MeuNome") {
  29. teste = i.Campo;
  30. break;
  31. }
  32. }
  33. relogio.Stop();
  34. WriteLine("Resultado do foreach: {0}", teste);
  35. WriteLine(relogio.ElapsedTicks);
  36. relogio.Restart();
  37. teste = "";
  38. teste = lista.Select(campo => campo.Campo).FirstOrDefault(c => c == "MeuNome");
  39. relogio.Stop();
  40. WriteLine("Resultado do LINQ: {0}", teste);
  41. WriteLine(relogio.ElapsedTicks);
  42. lista.Insert(0, new Classe() { Campo = "MeuNome" });
  43. WriteLine("Agora acha no primeiro");
  44. relogio.Restart();
  45. teste = "";
  46. for (int i = 0; i < lista.Count; i++) {
  47. if (lista[i].Campo == "MeuNome") {
  48. teste = lista[i].Campo;
  49. break;
  50. }
  51. }
  52. relogio.Stop();
  53. WriteLine("Resultado do for: {0}", teste);
  54. WriteLine(relogio.ElapsedTicks);
  55. relogio.Restart();
  56. teste = "";
  57. foreach (var i in lista) {
  58. if (i.Campo == "MeuNome") {
  59. teste = i.Campo;
  60. break;
  61. }
  62. }
  63. relogio.Stop();
  64. WriteLine("Resultado do foreach: {0}", teste);
  65. WriteLine(relogio.ElapsedTicks);
  66. relogio.Restart();
  67. teste = "";
  68. teste = lista.Select(campo => campo.Campo).FirstOrDefault(c => c == "MeuNome");
  69. relogio.Stop();
  70. WriteLine("Resultado do LINQ: {0}", teste);
  71. WriteLine(relogio.ElapsedTicks);
  72. relogio.Restart();
  73. }
  74. }
  75.  
  76. public class Classe {
  77. public string Campo;
  78. }
  79.  
  80. //https://pt.stackoverflow.com/q/53850/101
Success #stdin #stdout 0.04s 26156KB
stdin
Standard input is empty
stdout
Resultado do for: MeuNome
8940
Resultado do foreach: MeuNome
8443
Resultado do LINQ: MeuNome
45798
Agora acha no primeiro
Resultado do for: MeuNome
85
Resultado do foreach: MeuNome
76
Resultado do LINQ: MeuNome
711