c# 字符串转数组问题 var p = str.Split('@').Select(x => x.Split('=')).Where(x => x.Count() == 2).ToDictionary(x => x[0], x => x[1]); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.使用split方法依据“=”分割2.然后将奇数索引的字符串使用subString方法截取到字母3.将偶数索引的字符串转换成数字4.到这一步就获取到所需要的了,接下来可以使用二维数组等类似方法进行一一对应 楼主是PHP转过来的么,竟然把数组当字典用,按你的用法 ,应该是转成字典,而不是数组。string str = "@a=1@b=2@c=3"; Dictionary<string, int> p = str.Split(new char[] { '@' }, StringSplitOptions.RemoveEmptyEntries) .Select(i => i.Split('=')) .ToDictionary(i => i[0], i => int.Parse(i[1])); string 本是 char[]有必要转? 不如用byte[]数组来存储。如果以后用于网络流、加密等操作。方便。 按楼主需求,应该是要资料字典string str = "@a=1@b=2@c=3"; Dictionary<string, int> p = str.Split(new char[] { '@' }, StringSplitOptions.RemoveEmptyEntries).Select(i => i.Split('=')).ToDictionary(i => i[0], i => int.Parse(i[1])); Console.WriteLine("p[\"a\"]=" + p["a"]);Console.WriteLine("p[\"b\"]=" + p["b"]);Console.WriteLine("p[\"c\"]=" + p["c"]); Console.ReadKey();运行结果: 1.运用linq和lambda:var p = str.Split('@').Select(x => x.Split('=')).Where(x => x.Count() == 2).ToDictionary(x => x[0], x => x[1]); 2.传统数组方法:split('@')得到的数组,再循环转字典。 一个很奇怪的问题,大家来帮帮忙。。。 随即 选号 算法实现 还是一个结构体问题 ADO.NET关于存储过程返回参数接收问题?? 关于USB操作的问题 DataRowVersion.original是撒意思? 用wpf如何制作这样的菜单,请大家给点意见 有关TreeView的问题 请问字符串操作问题 求救:我在DataGrid一摸版列中放置一按扭,和一个label控件,label控件中有数据,如何将按扭所在行的label中的数据读出来? sqlserver数据库改成access后无法更新 wpf命名空间问题
2.然后将奇数索引的字符串使用subString方法截取到字母
3.将偶数索引的字符串转换成数字
4.到这一步就获取到所需要的了,接下来可以使用二维数组等类似方法进行一一对应
Dictionary<string, int> p = str.Split(new char[] { '@' }, StringSplitOptions.RemoveEmptyEntries)
.Select(i => i.Split('='))
.ToDictionary(i => i[0], i => int.Parse(i[1]));
有必要转?
string str = "@a=1@b=2@c=3";
Dictionary<string, int> p = str.Split(new char[] { '@' }, StringSplitOptions.RemoveEmptyEntries)
.Select(i => i.Split('='))
.ToDictionary(i => i[0], i => int.Parse(i[1]));
Console.WriteLine("p[\"a\"]=" + p["a"]);
Console.WriteLine("p[\"b\"]=" + p["b"]);
Console.WriteLine("p[\"c\"]=" + p["c"]);
Console.ReadKey();
运行结果:
2.传统数组方法:split('@')得到的数组,再循环转字典。