C# string 数组 转 int 数组

本文对比了使用C#语言将字符串数组转换为整型数组的四种方法,包括直接循环、使用Array类的静态方法ConvertAll和ForEach,以及简单的foreach循环方式。虽然方法效率相似,但推荐使用简洁的foreach循环方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 string 数组 转 int 数组 4种方法效率都差不多没什么可说的,仅供记录。唉人老了脑子不好使了。

		private int maxCount = 10000000;
		private string[ ] GetData( )
		{
			string[ ] input = new string[maxCount];
			for ( int i = 0; i < maxCount; i++ )
			{
				input[i] = i.ToString( );
			}
			return input;
		}

		private void button1_Click( object sender, EventArgs e )
		{
			string[ ] input = GetData( );
			DateTime tStart = DateTime.Now;
			int[ ] iTemp = new int[input.Length];
			for ( int i = 0; i < input.Length; i++ )
			{
				iTemp[i] = int.Parse( input[i] );
			}
			label1.Text = String.Format( "{0}毫秒", ( DateTime.Now - tStart ).Milliseconds );
		}

		private void button2_Click( object sender, EventArgs e )
		{
			string[ ] input = GetData( );
			DateTime tStart = DateTime.Now;
			int[ ] output = Array.ConvertAll<string, int>( input, delegate( string s ) { return int.Parse( s ); } );
			label2.Text = String.Format( "{0}毫秒", ( DateTime.Now - tStart ).Milliseconds );
		}

		private void button3_Click( object sender, EventArgs e )
		{
			string[ ] input = GetData( );
			DateTime tStart = DateTime.Now;
			int[ ] iTemp = new int[input.Length];

			Array.ForEach( input, i =>
			{
				int idx = int.Parse( i );
				iTemp[idx] = idx;
			} );

			label3.Text = String.Format( "{0}毫秒", ( DateTime.Now - tStart ).Milliseconds );
		}

		private void button4_Click( object sender, EventArgs e )
		{
			string[ ] input = GetData( );
			DateTime tStart = DateTime.Now;
			int[ ] output = Array.ConvertAll( input, s => int.Parse( s ) );
			label4.Text = String.Format( "{0}毫秒", ( DateTime.Now - tStart ).Milliseconds );
		}

 

button1 是最简单清楚的,考虑到4个方法的效率都差不多,所以还是它吧。

button2 是用Array类中的静态泛形式方法ConvertAll进行转换

delegate(string s) { return int.Parse(s); }这句表示:建立一个匿名委托,该委托关联的方法体是:return int.Parse(s); 将数组中的每个字符串强制转换成整形并返回添加给 output

这个方法是我网上找的很有深度,但效率没什么提高所以不推荐新手。

button3 是用Array类中的静态泛形式方法ForEach进行循环,用lambda 运算符代替委托。

button4 是button2的变形用lambda 运算符代替委托。现在懒人很多,少写点吧。

 

以上就是转换的4种方法,自己写给自己看的。效率都差不多,所以任选。OK

The End

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值