Light12306/TrainInfomationProviderService/StationInfo/Entities/SameStationCollection.cs
2014-11-21 20:32:36 +08:00

57 lines
1.1 KiB
C#

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<HashSet<string>>
{
private SameStationCollection()
{
}
public HashSet<string> FindSameStations(string code)
{
return this.FirstOrDefault(s => s.Contains(code));
}
private static SameStationCollection _instance;
private static readonly object _lockObject = new object();
/// <summary>
/// 获得实例对象
/// </summary>
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<SameStationCollection>(File.ReadAllText(file));
}
else
{
_instance = new SameStationCollection();
}
}
}
}
return _instance;
}
}
}
}