首页 > 其他分享 >项目中的通用消息类的实现

项目中的通用消息类的实现

时间:2022-12-15 18:36:42浏览次数:37  
标签:index 通用 string 项目 IEnumerable list 索引 消息 public

本类继承了IEnumerable接口这后,支持了简单的遍历,方法将内部的消息输出,提供了两种索引器对它进行读取,数值为索引的和字符为索引的.

namespace Entity.Commons
{
/// <summary>
/// 通用消息序列类
/// </summary>
public class VMessage : IEnumerable<string>
{
/// <summary>
/// 是否完成
/// </summary>
public bool IsComplete { get; set; }

/// <summary>
/// 消息序列
/// </summary>
List<string> list = new List<string>();

Dictionary<string, string> dic = new Dictionary<string, string>();

/// <summary>
/// 向序列中添加新的项
/// </summary>
/// <param name="item"></param>
public void AddItem(string item)
{
this.list.Add(item);
}


/// <summary>
/// 向序列中添加新的项
/// </summary>
/// <param name="index">数值索引</param>
/// <param name="item"></param>
public void AddKeyValueItem(string index, string item)
{
this.dic.Add(index, item);

}
/// <summary>
/// 键值消息键是否存在
/// </summary>
/// <param name="index">键</param>
/// <returns>是否存在</returns>
public bool ContainsKey(string index)
{
return this.dic.ContainsKey(index);
}

/// <summary>
/// 向序列中追加一个新的序列
/// </summary>
/// <param name="itemRange">序列对象</param>
public void AddItemRange(IEnumerable<string> itemRange)
{
this.list.AddRange(itemRange);
}
/// <summary>
/// 消息对象
/// </summary>
public Object Object { get; set; }

/// <summary>
/// 清空所有现有项
/// </summary>
public void Clear()
{
this.list.Clear();
}

/// <summary>
/// 索引器
/// </summary>
/// <param name="index">索引</param>
/// <returns>相应值</returns>
public string this[int index]
{
get { return this.list[index]; }

}

/// <summary>
/// 索引器
/// </summary>
/// <param name="index">索引</param>
/// <returns>相应值</returns>
public string this[string index]
{
get
{
return this.dic[index];
}

}

#region IEnumerable<string> 成员

public IEnumerator<string> GetEnumerator()
{
return this.list.GetEnumerator();
}

#endregion

#region IEnumerable 成员

IEnumerator IEnumerable.GetEnumerator()
{
return this.list.GetEnumerator();
}

#endregion
}
}

作者:仓储大叔,张占岭,
荣誉:微软MVP

标签:index,通用,string,项目,IEnumerable,list,索引,消息,public
From: https://blog.51cto.com/u_15765017/5945627

相关文章

  • springMvc23-配置maven环境和创建maven项目(建议收藏,超全超详细)
    1本次歌谣就对如何创建一个maven项目做一个详细的讲解,毕竟卡了我三天,久久不能入眠,也搜了网上很多的博客都没有顺利的解决maven项目的创建。这篇建议大家收藏,总会用到的。不......
  • eclipse使用git提交项目
    eclipse使用git提交项目有2种方式:一种是git命令窗口,另一种是eclipse自带git插件(跟svn插件一样使用)一、使用git命令窗口提交项目1.首先官网下载git并安装,然后配置用户信息(任......
  • ThingsBoard前端项目的安装与启动
    前言ThingsBoard是目前Github上最流行的开源物联网平台(12.8kStar),可以实现物联网项目的快速开发、管理和扩展,是中小微企业物联网平台的不二之选。本文介绍在Windows环......
  • 双 11 抢购项目部署文档
    本文档中主要描述如何进行双11抢购项目的本地运行和部署。1、环境说明1)服务器配置内存16G+(DDR3或以上)CPU标准电压版i5(3470+)4核单线程(双线程更好)硬盘5......
  • ThingsBoard前端项目的安装与启动
    前言ThingsBoard是目前Github上最流行的开源物联网平台(12.8kStar),可以实现物联网项目的快速开发、管理和扩展,是中小微企业物联网平台的不二之选。本文介绍在Windows环......
  • 公司新来一个同事,把网关系统设计的炉火纯青!(万能通用,稳的一批。。)
    来源:developer.aliyun.com/article/889271本文准备围绕七个点来讲网关,分别是网关的基本概念、网关设计思路、网关设计重点、流量网关、业务网关、常见网关对比,对基础概念......
  • Forexclub:美国在这一项目上也被卡脖子
    不要以为只有中国在一些项目被美国卡脖子,其实美国在有些项目上也被其他国家卡脖子,比如美国的TerraPower核能项目,需要的燃料只有俄罗斯才能提供。TerraPower核能项目由美......
  • 从零入门项目集成Karate和Jacoco,配置测试代码覆盖率
    解决问题在SpringBoot项目中,如何集成Karate测试框架和Jacoco插件。以及编写了feature测试文件,怎么样配置才能看到被测试接口代码的覆盖率。演示版本及说明本次讲解,基于S......
  • 物流行业对接BMW EDI项目案例分析
    宝马集团的悠久历史始于1916年,总部位于德国慕尼黑。是德国最成功的汽车和摩托车制造商之一,也是德国规模最大的制造工业公司之一。项目背景物流行业C公司作为BMW的承运商,......
  • KBJ2510-ASEMI通用适配电磁炉整流桥KBJ2510
    编辑:llKBJ2510-ASEMI通用适配电磁炉整流桥KBJ2510型号:KBJ2510品牌:ASEMI封装:KBL-4正向电流:25A反向电压:1000V引脚数量:4芯片个数:4芯片尺寸:140MIL漏电流:>10ua恢复时......