using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; namespace TrainInfomationProviderService.StationInfo.Entities { public class SameStationCollection : List> { private SameStationCollection() { } public HashSet FindSameStations(string code) { return this.FirstOrDefault(s => s.Contains(code)); } private static SameStationCollection _instance; private static readonly object _lockObject = new object(); /// /// 获得实例对象 /// public static SameStationCollection Instance { get { if (_instance == null) { lock (_lockObject) { if (_instance == null) { var file = Path.Combine(RunTimeContext.DataStorageRoot, "samestation.json"); if (File.Exists(file)) { _instance = JsonConvert.DeserializeObject(File.ReadAllText(file)); } else { _instance = new SameStationCollection(); } } } } return _instance; } } } }