GeoLineGroup.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Ips.Library.Entity
  7. {
  8. public class GeoLineGroup
  9. {
  10. public GeoLineGroup() { }
  11. public GeoLineGroup(string name)
  12. {
  13. this.Name = name;
  14. }
  15. public string Name { get; set; }
  16. public List<GeoLine> Lines { get; set; } = new List<GeoLine>();
  17. public static List<GeoLineGroup> FromListString(string source)
  18. {
  19. var results = new List<GeoLineGroup>();
  20. if (string.IsNullOrWhiteSpace(source))
  21. return results;
  22. using var reader = new StringReader(source);
  23. string line = string.Empty;
  24. GeoLineGroup result = null;
  25. while ((line = reader.ReadLine()) != null)
  26. {
  27. bool isBegin = line.StartsWith("key:");
  28. if (isBegin)
  29. {
  30. var newItem = new GeoLineGroup(line.Substring(4));
  31. results.Add(newItem);
  32. result = newItem;
  33. }
  34. else
  35. {
  36. if (result != null)
  37. {
  38. result.Lines.Add(GeoLine.FromString(line));
  39. }
  40. }
  41. }
  42. return results;
  43. }
  44. }
  45. }