C#自定义泛型类型集合

一.定义接口

  public interface ICustom
    {
        string Title { get; set; }
        string Content { get; set; }
    }

二.实现接口

 public class Custom : ICustom
    {
        public string Title { get; set; }
        public string Content { get; set; }
        public Custom() { }
        public Custom(string title, string content)
        {
            this.Title = title;
            this.Content = content;
        }
    }

三.集合结果处理

    public class CustomSet<T> where T : ICustom
    {
        /// <summary>
        /// 定义存储集合
        /// </summary>
        private readonly Queue<T> newQue = new Queue<T>();
        /// <summary>
        /// 添加内容
        /// </summary>
        /// <param name="info"></param>
        public void AddCustom(T info)
        {
            lock (this)
            {
                newQue.Enqueue(info);
            }
        }
        /// <summary>
        /// 验证是否向自定义集合中存储数据
        /// </summary>
        public bool IsCustomSetValidate => newQue.Count > 0;
        /// <summary>
        /// 返回集合的最后一个结果
        /// </summary>
        /// <returns></returns>
        public T GetCustomSet()
        {
            T doc = default(T);
            lock (this)
            {
                doc = newQue.LastOrDefault();
            }
            return doc;
        }
        /// <summary>
        /// 输出数据集合
        /// </summary>
        /// <returns></returns>
        public void GetAllCustomSet()
        {
            foreach (T que in newQue)
            {
                Console.WriteLine(que.Title);
            }
        }
    }

四.调用测试

  CustomSet<Custom> custom = new CustomSet<Custom>();
            custom.AddCustom(new Custom { Title = "CUSTOMTITLEA", Content = "CUSTOMCONTENTA" });
            custom.AddCustom(new Custom { Title = "CUSTOMTITLEB", Content = "CUSTOMCONTENTB" });
            custom.GetAllCustomSet();
            Console.WriteLine(custom.IsCustomSetValidate ? custom.GetCustomSet().Content : null);

猜你喜欢

转载自blog.csdn.net/qq_31975127/article/details/85115679