指定格式的字符串截成一维数组(二维数组)的操作类

做项目时经常会遇到将"1,3,a,b,d"截成一维数组或将"1,a;2,b;3,c;4,d"截成二维数组。虽然String.Split()可以实现,但我感觉在遍历取值时还不是很方便。

所以写下clsArrayList类,专门做这方面的处理。

注:myClass.clsLogHelper 为写错误日志类,在我的博客中有写,有兴趣的朋友可能看一下。

using System;
using System.Text;

namespace myClass
{
class clsArrayList
{
public int p_Count=-1; //数据组数
private string[] myArray1; //一维矩阵
private string[,] myArray2; //二维矩阵

/// <summary>
/// 一维字符串分隔,初始化.例: clsArrayList myArray1List=new clsArrayList("1;2;3;4;5",';')
/// </summary>
/// <param name="strStringSource"></param>
/// <remarks>gx 2010-04-25</remarks>
public clsArrayList(string strStringSource, char charSepartor)
{
try
{
myArray1 = strStringSource.Split(charSepartor);//截取
p_Count = myArray1.Length;
}
catch(Exception ex)
{
myClass.clsLogHelper.m_CreateErrorLogTxt("clsArrayList(" + strStringSource + " , " + charSepartor + ")", "", ex.Message.ToString());
}
}

/// <summary>
/// 二维字符串分隔,初始化. 例: clsArrayList myArray1List=new clsArrayList("1,A;2,B;3,C;4,D;5,E" , ';' , ',')
/// </summary>
/// <param name="strStringSource"></param>
/// <param name="strColumnSepartor"></param>
/// <param name="strRowSepartor"></param>
/// <remarks>gx 2010-04-25</remarks>
public clsArrayList(string strStringSource, char charColumnSepartor, char charRowSepartor)
{
try
{
string[] strColumn; //第一次截取 ";"
string[] strRow; //第二次截取 ","

strColumn = strStringSource.Split(charColumnSepartor);//第一次截取
p_Count = strColumn.Length;

myArray2 = new string[p_Count, 2];
for (int i = 0; i <= p_Count - 1; i++) //将数据保存 数组 myArray1 中
{
strRow = strColumn[i].Split(charRowSepartor);//第二次截取
myArray2[i, 0] = strRow[0];
myArray2[i, 1] = strRow[1];
}
}
catch (Exception ex)
{
myClass.clsLogHelper.m_CreateErrorLogTxt("clsArrayList(" + strStringSource + " , " + charColumnSepartor + " , " + charRowSepartor + ")", "", ex.Message.ToString());
}
}

/// <summary>
/// 一维字符串,取值
/// </summary>
/// <param name="intIndex"></param>
/// <returns></returns>
public string m_GetItem(int intIndex)
{
if (myArray1 == null)
{
return "";
}
if (p_Count == - 1)
{
return "";
}
if (intIndex > p_Count - 1)
{
return "";
}
else
{
return myArray1[intIndex];
}
}

/// <summary>
/// 二维字符串,取值
/// </summary>
/// <param name="intKeyIndex"></param>
/// <param name="intValueIndex"></param>
/// <returns></returns>
/// <remarks>gx 2010-04-25</remarks>
public string m_GetItem(int intKeyIndex,int intValueIndex)
{
if (myArray2 == null)
{
return "";
}
if (p_Count == -1)
{
return "";
}
if (intKeyIndex > p_Count - 1 || intValueIndex > 1)//Value为列,二维
{
return "";
}
else
{
return myArray2[intKeyIndex, intValueIndex];
}
}

/// <summary>
/// 二维字符串,通过Value 获取Key ,例: m_GetKey("1")
/// </summary>
/// <param name="strValue"></param>
/// <returns></returns>
/// <remarks>gx 2010-04-25</remarks>
public string m_GetKey(string strValue)
{
try
{
if (myArray2 == null)
{
return "";
}
if (p_Count == -1)
{
return "";
}
for (int i = 0; i <= p_Count - 1; i++) //通过value查找key
{
if (myArray2[i, 1] == strValue)
{
return myArray2[i, 0]; //返回key的值
}
}
return "";
}
catch(Exception ex)
{
myClass.clsLogHelper.m_CreateErrorLogTxt("clsArrayList(" + strValue + ")", "", ex.Message.ToString());
return "";
}

}

/// <summary>
/// 二维字符串,通过Key 获取Value
/// </summary>
/// <param name="strKey"></param>
/// <returns></returns>
/// <remarks>gx 2010-04-25</remarks>
public string m_GetValue(string strKey)
{
try
{
if (myArray2 == null)
{
return "";
}
if (p_Count == -1)
{
return "";
}
for (int i = 0; i <= p_Count - 1; i++) //通过key查找value
{
if (myArray2[i, 0] == strKey)
{
return myArray2[i, 1]; //返回value的值
}
}
return "";

}
catch(Exception ex)
{
myClass.clsLogHelper.m_CreateErrorLogTxt("m_GetValue(" + strKey + ")", "", ex.Message.ToString());
return "";
}
}

}
}

C# 指定格式的字符串截成一维数组(二维数组)的操作类相关推荐

  1. day06数组-一维数组二维数组

    数组:          数组到底是什么呢?有什么特点呢?通过上面的分析:我们可以得到如下两句话:                 1.数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. ...

  2. 数组(一维数组、多维数组/二维数组)和简单排序算法

    提示:数组是线性数据结构中最为基础,最为典型的一种顺序型结构. 它用一组连续的内存空间 ,来存储一组具有相同类型的数据. 与变量相比,变量是一种单一的数据存储方式,而数组是用于存储一连串的一组数据. ...

  3. c 语言 二维数组地址,C/C++ 关于一维或二维数组首地址表示含义

    C/C++ 关于一维或二维数组首地址表示含义 发布时间:2020-06-26 10:35:21 来源:51CTO 阅读:210 作者:sonissa 这是一个经常会忘却的知识点,最近也一直在吃这方面的 ...

  4. c/c++教程 - 1.7 数组 一维数组 二维数组

    九.数组 数组:一个里面存放了相同类型数据元素的集合. 特点:每个数组中的元素都是相同的数据类型:数组是由连续的内存位置组成的. 注意:数组的下标是从0开始索引. 参考视频:https://www.b ...

  5. 第二十一节(数组概要, 一维、二维数组的声明和使用,数组的排序,数组的查找,)...

    一维数组:1:/*数组:1. 数组是一种引用类型2. 数组是一种简单的数据结构,线性的机构3. 数组是一个容器,可以用来存储其他元素,4. 数组也是可以存储任意数据类型的元素5. 数组分为:一维数组, ...

  6. JAVA笔记- JAVA一维、二维数组的遍历与使用详解

    1- 数组概述 需求:现在需要统计某公司员工的工资情况,例如计算平均工资.找到最高工资等.假设该公司有80名员工,用前面所学的知识,程序首先需要声明80个变量来分别记住每位员工的工资,然后在进行操作, ...

  7. 数组--二维数组转为一维数组

    a.二维数组转为一维数组: i.reduce() 方法 接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值.对空数组是不会执行回调函数的 语法:array.reduce(fu ...

  8. Numpy 一维、二维数组、size/dtype/shape属性、数组函数arange/linspace/logspace /diag/zeros/ones/random 、多维数组索引和筛选)

    参考: https://gitbook.cn/gitchat/column/undefined/topic/5e3bceadec8d9033cf924665 打开 IPython ,创建 Python ...

  9. 10-20C#基础---一维、二维数组冒泡排序

    一.一维数组 1.定义:是某一种数据类型的数据的组合,数组用来分组基本类型或相同类型的对象.数组中的实体叫做数组的元素或成员. 2. 格式:int[ ] shuzu=new int[ 6];存放int ...

最新文章

  1. C语言做一个通讯录程序(在console里面运行)
  2. 浅析epoll – epoll例子以及分析
  3. struts.xml文件的配置说明
  4. WCF,Net remoting,Web service概念(转)
  5. 数模笔记_单变量最优化
  6. 进入法院黑名单之后,买彩票中了500万还能领奖吗?
  7. 浙江省2021年英语高考成绩查询,浙江高考成绩查询、志愿填报时间公布!
  8. [洛谷P5048][Ynoi2019模拟赛]Yuno loves sqrt technology III
  9. Go语言与数据库开发:01-11
  10. 安装了email模块还是报错_官网的Pyngl和Pynio安装方法会报错!正确的在这里!
  11. 递归走迷宫java,java递归实现的迷宫游戏
  12. java 父类返回子类是咧_【daily】Java泛型 - 返回父类的子类
  13. APP 上传之后出现invalid binary 问题解决汇总
  14. python_flask框架Ubuntu16.04下环境搭建
  15. linux 配置java环境变量_linux配置java环境变量(详细)
  16. java smali代码 解读_Smali代码语法
  17. Specificity and sensitivity
  18. Excise_Thread2
  19. python爬千图网高清图片
  20. 长安十二时辰大结局一段时间了

热门文章

  1. php5.3源码,php5.3介绍
  2. php tp3 操作绑定到类,快速入门 17:操作绑定到类
  3. java随机数 时间_Java 随机数
  4. 百度小程序--支付功能
  5. Paddle中的数据集合定义与加载
  6. 运算放大器在超高频信号作用下的偏移量的变化
  7. java 并发包学习_Java学习笔记—多线程(java.util.concurrent并发包概括,转载)
  8. dwa的区别 teb_teb_local_planner安装及使用
  9. function java_java.util.function之function
  10. html表单输入框添加验证码,织梦Dedecms为自定义表单添加验证码功能