由于系统需要,将人员我分配比例以字符窜形式体现,即将组数据中数据体现在字符窜,生成字符窜已经解决,现在是怎样将字符窜反生成数组.
private struct Emp //一个自定义数据型
{
string Name""; //人员名称
decimal Rate; //比率
}
Emp[] SetEmp=new Emp[3] //定义一个Emp数组,假设为4维(根据用户选择)
SetEmp[0].Name="张三";
SetEmp[0].Rate=30;
SetEmp[1].Name="李四";
SetEmp[1].Rate=20;
..........
根据数组生的维数生成字符窜;
{[张三<30%>]:[李四<20%>]:[王五<10%>]:[杜七三<10%>]:[李四一<10>]}
//以上都解决了
现在是怎样把:
{[张三<30%>]:[李四<20%>]:[王五<10%>]:[杜七三<10%>]:[李四一<10>]}
转换到数组Emp,以便读取和计算.
急!求各位大侠帮助,先谢了!
private struct Emp //一个自定义数据型
{
string Name""; //人员名称
decimal Rate; //比率
}
Emp[] SetEmp=new Emp[3] //定义一个Emp数组,假设为4维(根据用户选择)
SetEmp[0].Name="张三";
SetEmp[0].Rate=30;
SetEmp[1].Name="李四";
SetEmp[1].Rate=20;
..........
根据数组生的维数生成字符窜;
{[张三<30%>]:[李四<20%>]:[王五<10%>]:[杜七三<10%>]:[李四一<10>]}
//以上都解决了
现在是怎样把:
{[张三<30%>]:[李四<20%>]:[王五<10%>]:[杜七三<10%>]:[李四一<10>]}
转换到数组Emp,以便读取和计算.
急!求各位大侠帮助,先谢了!
解决方案 »
- 数据库查询问题 这样有错吗?
- 初学者送分 dictionary 有相同的key值出现时 add进去的时候是报错还是覆盖?
- 关于
- 问一下如何通过wsdl调用web服务?
- 讀取xml的節點?
- 高分 我form里面内嵌了一张网页 怎么将这张网页和外面的网页里的SESSION连在一块
- 继续发帖求教:用C#实现文件下载时,没反应,点击左下角图标显示乱码。
- C# web应用程序中有关url的相对路径怎么表达??
- 为什么IIS5.0不能见虚拟目录
- 呼唤版主【caozhy】 继续帮忙--c# 获取外部程序弹出对话框中的文本内容】
- 请教Datagrid英文字段转化为中文取值问题
- 开源了—— 微软的 C# 版《极品飞车》!
{
private struct Emp //一个自定义数据型
{
public string Name; //人员名称
public decimal Rate; //比率
} public static void Main()
{
string str = "{[张三<30%>]:[李四<20%>]:[王五<10%>]:[杜七三<10%>]:[李四一<10%>]}";
str = str.Substring(1, str.Length - 2); //取了两段的大括号
string[] strEmp = str.Split(':'); Emp[] e = new Emp[strEmp.Length]; for(int i = 0; i < strEmp.Length; i++)
{
e[i].Name = strEmp[i].Substring(1, strEmp[i].IndexOf('<') - 1);
e[i].Rate = Convert.ToDecimal(strEmp[i].Substring(strEmp[i].IndexOf('<') + 1, strEmp[i].IndexOf('>') - strEmp[i].IndexOf('<') - 3)) / 100;
} foreach (Emp eTemp in e)
{
Console.WriteLine(eTemp.Name + " " + eTemp.Rate);
}
}
}
using System.Text.RegularExpressions;class Test
{
private struct Emp //一个自定义数据型
{
public string Name; //人员名称
public decimal Rate; //比率
} public static void Main()
{
string str = "{[张三<30%>]:[李四<20%>]:[王五<10%>]:[杜七三<10%>]:[李四一<10%>]}";
Emp[] e = new Emp[Regex.Matches(str, ":").Count+1];
MatchCollection mc = Regex.Matches(str, @"\[(?<name>[^<]*)<(?<rate>\d+)%>\]");
for(int i=0;i<mc.Count;i++)
{
e[i].Name = mc[i].Groups["name"].Value;
e[i].Rate = Convert.ToDecimal(mc[i].Groups["rate"].Value);
} foreach (Emp eTemp in e)
{
Console.WriteLine(eTemp.Name + " " + eTemp.Rate);
}
Console.ReadLine();
}
}呵呵,我也试下。看楼主例子中Rate值是整数,楼上只要截取出来就行了,不用再转小数了