using System.Collections.Generic; using System.Linq; namespace GFGGame { public class NoticeInfo { public int noticeId; public string title; public long time;//时间戳,单位秒 public string content = ""; public bool readStatus;//对应的读取状态,true为已读 } public class NoticeDataManager : SingletonBase { private NoticeInfo _lastNoticeInfo; public NoticeInfo LastNoticeInfo { get { return _lastNoticeInfo; } set { _lastNoticeInfo = value; } } private List _noticeInfos = new List(); public List NoticeInfos { get { return _noticeInfos; } } private Dictionary _noticeInfoDic = new Dictionary(); public void UpdateNoticeIdList(NoticeInfo noticeInfo) { if (!_noticeInfoDic.ContainsKey(noticeInfo.noticeId)) { _noticeInfoDic.Add(noticeInfo.noticeId, noticeInfo); } else { _noticeInfoDic[noticeInfo.noticeId] = noticeInfo; } NoticeDicToList(); } public void UpdateNoticeContent(int noticeId, string content) { _noticeInfoDic[noticeId].content = content; _noticeInfoDic[noticeId].readStatus = true; NoticeDicToList(); } public void UpdateSystemNoticeRemove(int noticeId) { if (_noticeInfoDic.ContainsKey(noticeId)) _noticeInfoDic.Remove(noticeId); NoticeDicToList(); } private void NoticeDicToList() { _noticeInfos = _noticeInfoDic.Values.ToList(); _noticeInfos.Sort((NoticeInfo a, NoticeInfo b) => { return b.noticeId.CompareTo(a.noticeId); }); } public NoticeInfo GetNoticeInfoById(int noticeId) { return _noticeInfoDic[noticeId]; } } }