Ускорить работу с файлом - C#

Узнай цену своей работы

Формулировка задачи:

Программа создает sitemap.xml файл для индексации поисковиками. Работает ну очень долго. Помогите ускорить. a = примерно 25000
Листинг программы
  1. public static void Main(string[] args)
  2. {
  3. using (DB_A05F1F_Frol4icContext db = new DB_A05F1F_Frol4icContext())
  4. {
  5. IEnumerable<string> TitleIDs = new string[] { }; //Enumerable.Empty<string>();
  6. TitleIDs = db.TitleIds.Select(x => x.TitleId);//.ToList();
  7. IEnumerable<string> TitleIDs2 = new string[] { };
  8. TitleIDs2 = TitleIDs2.Concat(new[] { "<?xml version = "1.0" encoding = "UTF-8" ?>" });
  9. TitleIDs2 = TitleIDs2.Concat(new[] { "<urlset xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9">" });
  10. TitleIDs2 = TitleIDs2.Concat(new[] { "<url>" });
  11. TitleIDs2 = TitleIDs2.Concat(new[] { "<loc>http://yttext.com</loc>" });
  12. TitleIDs2 = TitleIDs2.Concat(new[] { "</url>" });
  13. TitleIDs2 = TitleIDs2.Concat(new[] { "<url>" });
  14. TitleIDs2 = TitleIDs2.Concat(new[] { "<loc>http://yttext.com/Account/Login</loc>" });
  15. TitleIDs2 = TitleIDs2.Concat(new[] { "</url>" });
  16. TitleIDs2 = TitleIDs2.Concat(new[] { "<url>" });
  17. TitleIDs2 = TitleIDs2.Concat(new[] { "<loc>http://yttext.com/account/login?ReturnUrl=%2FAccount%2FSettings%3FName%3D</loc>" });
  18. TitleIDs2 = TitleIDs2.Concat(new[] { "</url>" });
  19. TitleIDs2 = TitleIDs2.Concat(new[] { "<url>" });
  20. TitleIDs2 = TitleIDs2.Concat(new[] { "<loc>http://yttext.com/Home/Contact</loc>" });
  21. TitleIDs2 = TitleIDs2.Concat(new[] { "</url>" });
  22. TitleIDs2 = TitleIDs2.Concat(new[] { "<url>" });
  23. TitleIDs2 = TitleIDs2.Concat(new[] { "<loc>http://yttext.com/Account/Register</loc>" });
  24. TitleIDs2 = TitleIDs2.Concat(new[] { "</url>" });
  25. TitleIDs2 = TitleIDs2.Concat(new[] { "<url>" });
  26. TitleIDs2 = TitleIDs2.Concat(new[] { "<loc>http://yttext.com/Account/ForgotPass</loc>" });
  27. TitleIDs2 = TitleIDs2.Concat(new[] { "</url>" });
  28. foreach (var a in TitleIDs)
  29. {
  30. TitleIDs2 = TitleIDs2.Concat(new[] { "<url>" });
  31. TitleIDs2 = TitleIDs2.Concat(new[] { "<loc>http://yttext.com/SubsView/SubsView?titleID=" + a + "&culture=en" + "</loc>" });
  32. TitleIDs2 = TitleIDs2.Concat(new[] { "</url>" });
  33. TitleIDs2 = TitleIDs2.Concat(new[] { "<url>" });
  34. TitleIDs2 = TitleIDs2.Concat(new[] { "<loc>http://yttext.com/SubsView/SubsView?titleID=" + a + "&culture=de" + "</loc>" });
  35. TitleIDs2 = TitleIDs2.Concat(new[] { "</url>" });
  36. TitleIDs2 = TitleIDs2.Concat(new[] { "<url>" });
  37. TitleIDs2 = TitleIDs2.Concat(new[] { "<loc>http://yttext.com/SubsView/SubsView?titleID=" + a + "&culture=fr" + "</loc>" });
  38. TitleIDs2 = TitleIDs2.Concat(new[] { "</url>" });
  39. TitleIDs2 = TitleIDs2.Concat(new[] { "<url>" });
  40. TitleIDs2 = TitleIDs2.Concat(new[] { "<loc>http://yttext.com/SubsView/SubsView?titleID=" + a + "&culture=es" + "</loc>" });
  41. TitleIDs2 = TitleIDs2.Concat(new[] { "</url>" });
  42. TitleIDs2 = TitleIDs2.Concat(new[] { "<url>" });
  43. TitleIDs2 = TitleIDs2.Concat(new[] { "<loc>http://yttext.com/SubsView/SubsView?titleID=" + a + "&culture=it" + "</loc>" });
  44. TitleIDs2 = TitleIDs2.Concat(new[] { "</url>" });
  45. TitleIDs2 = TitleIDs2.Concat(new[] { "<url>" });
  46. TitleIDs2 = TitleIDs2.Concat(new[] { "<loc>http://yttext.com/SubsView/SubsView?titleID=" + a + "&culture=ru" + "</loc>" });
  47. TitleIDs2 = TitleIDs2.Concat(new[] { "</url>" });
  48. }
  49. TitleIDs2 = TitleIDs2.Concat(new[] { "</urlset>" });
  50.  
  51. var logPath = System.IO.Path.GetFullPath(@"D:\sitemap.xml"); //.GetTempFileName();
  52. File.WriteAllLines(logPath, TitleIDs2);//.Create(logPath);
  53. }
  54. }

Решение задачи: «Ускорить работу с файлом»

textual
Листинг программы
  1. public static void Main(string[] args)
  2. {
  3.     using (var writer = new StreamWriter(File.Create(@"D:\sitemap.xml")))
  4.     using (DB_A05F1F_Frol4icContext db = new DB_A05F1F_Frol4icContext())
  5.     {
  6.         writer.WriteLine("<?xml version = \"1.0\" encoding = \"UTF-8\" ?>");
  7.         writer.WriteLine("<urlset xmlns = \"http://www.sitemaps.org/schemas/sitemap/0.9\">");
  8.         writer.WriteLine("<url>");
  9.         writer.WriteLine("<loc>http://yttext.com</loc>");
  10.         writer.WriteLine("</url>");
  11.         writer.WriteLine("<url>");
  12.         writer.WriteLine("<loc>http://yttext.com/Account/Login</loc>");
  13.         writer.WriteLine("</url>");
  14.         writer.WriteLine("<url>");
  15.         writer.WriteLine("<loc>http://yttext.com/account/login?ReturnUrl=%2FAccount%2FSettings%3FName%3D</loc>");
  16.         writer.WriteLine("</url>");
  17.         writer.WriteLine("<url>");
  18.         writer.WriteLine("<loc>http://yttext.com/Home/Contact</loc>");
  19.         writer.WriteLine("</url>");
  20.         writer.WriteLine("<url>");
  21.         writer.WriteLine("<loc>http://yttext.com/Account/Register</loc>");
  22.         writer.WriteLine("</url>");
  23.         writer.WriteLine("<url>");
  24.         writer.WriteLine("<loc>http://yttext.com/Account/ForgotPass</loc>");
  25.         writer.WriteLine("</url>");
  26.         foreach (var a in db.TitleIds.Select(x => x.TitleId))
  27.         {
  28.             writer.WriteLine("<url>");
  29.             writer.WriteLine("<loc>http://yttext.com/SubsView/SubsView?titleID=" + a + "&culture=en" + "</loc>");
  30.             writer.WriteLine("</url>");
  31.             writer.WriteLine("<url>");
  32.             writer.WriteLine("<loc>http://yttext.com/SubsView/SubsView?titleID=" + a + "&culture=de" + "</loc>");
  33.             writer.WriteLine("</url>");
  34.             writer.WriteLine("<url>");
  35.             writer.WriteLine("<loc>http://yttext.com/SubsView/SubsView?titleID=" + a + "&culture=fr" + "</loc>");
  36.             writer.WriteLine("</url>");
  37.             writer.WriteLine("<url>");
  38.             writer.WriteLine("<loc>http://yttext.com/SubsView/SubsView?titleID=" + a + "&culture=es" + "</loc>");
  39.             writer.WriteLine("</url>");
  40.             writer.WriteLine("<url>");
  41.             writer.WriteLine("<loc>http://yttext.com/SubsView/SubsView?titleID=" + a + "&culture=it" + "</loc>");
  42.             writer.WriteLine("</url>");
  43.             writer.WriteLine("<url>");
  44.             writer.WriteLine("<loc>http://yttext.com/SubsView/SubsView?titleID=" + a + "&culture=ru" + "</loc>");
  45.             writer.WriteLine("</url>");
  46.         }
  47.         writer.WriteLine("</urlset>");
  48.     }
  49. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут