日期:2014-05-20  浏览次数:20826 次

由字符串处理引发的对.NET与C/C++的思考
前段时间想简化一个对字符串进行处理的逻辑。
原来的逻辑是:从数据库中提取数据,以字符串的格式返回。
格式为“(总行数);(所提取列,以逗号分隔);(提取到的数据,列之间以逗号分隔,行之间以分号分隔)”
例如:“3;name,id;test1,1;test2,2;test3,3”等于
name       id
test1      1
test2      2
test3      3

以前的处理方法是用公共方法将此字符串转换为ArrayList包含Hashtable的形式,但是我发现这种方式因为频繁转换导致效率很低,所以我想直接对字符串进行处理。
目前已经做到的是:1.提取指定列名对应的所有值;2.删除与指定值相匹配的所有行;

完成这个之后我想要对字符串的处理进行扩展一下比如:
1.从给定字符串中提取所有与指定内容相匹配的子字符串;---可以通过Regex实现
2.删除给定字符串中出现的所有与指定内容相匹配的子字符串,自动左对齐;
3.获取给定字符串中所有与指定内容相匹配的子字符串的索引;
4.提取给定字符串中所有出现的数字,以数字或者字符串形式返回;

这些都可以实现,只是我一直认为在.net上面开发就像是在火车上跑步,你可以跑的很快,但是你永远无法超过火车。
而C/C++开发呢,你可以是骑单车的小子,可以是小轿车司机,可以是火车车长,甚至可以使和谐号,波音7*7,可以是战斗机,可以是任何你能想到的东西。

鉴于此,我想用C/C++开发一个公共方法的dll,然后在.net中调用,虽然还是无法自由驰骋,至少可以在火车上跑得更快一些。
不知我这种想法可以吗?
------解决方案--------------------
快多少?
做到C++比.net 快可是要很高很高水平的.
在.net 里你也可以一直用低端的东西做,不必用ArrayList什么的.
------解决方案--------------------
你如果可以超越火车甚至波音7*7,你为什么不实际开一个火车制造工厂呢?

我看到的大多数人都是拿着最低级的工具,别人2个月做出来的东西他2年都做不出来,硬说“我这是最高效的工具,所以是万能的”。按照这个逻辑,其实他拿着汇编语言,甚至拿着0、1两个数会整天幻想,可以显得“更高、更万能”,因为他看不到做一件事需要借助“别人”以前留给后人的多少力量,总以为自己会最低级的那一点基本语法是万能的。
------解决方案--------------------
很简单,你拿c先开发一个asp.net系统出来,让别人也像使用asp.net一样地使用你的平台啊。做出此类实际的开发框架平台再开始挑战别的开发框架平台,别整天拿着刚学编程时的c语法说事啊。
------解决方案--------------------
当然可以做,不过只能当作练习,并没有实际价值。
你要想想.Net是用在什么应用上的,而C语言开发出来的程序是做什么应用的。

对于字符串的处理,你把.net的效率从0.01秒缩小到0.001秒,有什么意义吗?
------解决方案--------------------
这两种语言所对应的开发目标是不一样的,所以可比性不是很高,你要是拿C#和java比还有点像
------解决方案--------------------
除了最后一句有点离谱....别的还算有一定道理卫星和火箭程序都是用C开发的
------解决方案--------------------
我发现楼主的格式,是一个很标准的json