各位高手思考了几天,不知道c#这个问题怎么处理就是将tb1文本框里输入的带空格的字符
输出到tb2文本框里删除掉文本框
可是奇怪的是,tb2文本框里老出现
“system.Collections.ArrayList”
这样的字样,很奇怪
请各位指导!using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;namespace 空格
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void Form1_Load(object sender, EventArgs e)
        {        }        private void TC(object sender, EventArgs e)
        {
            Char[] cr = tb1.Text.ToCharArray();
            ArrayList at = new ArrayList();
            int j=tb1.Text.Length;
            for (int i = 0;i< j; i++)
            {
                if (cr[i] !=' ')
                {
                    at.Add(cr[i]);
                }
            }
            tb2.Text = at.ToString();
        }
    }
}

解决方案 »

  1.   

    你要把lb1的值给lb2 直接赋值就好了啊 搞那么复杂干吗?
    lb2.text=lb1.text;
    不知道你想实现什么 
      

  2.   

    ArrayList的ToString使用默认实现,就是返回“System.Collections.ArrayList”,如果你需要由ArrayList构造字符串,可以将ArrayList转为char[],然后通过String类的构造函数得到字符串。
    不过对于你的需求,有更简单的方法,比如:
    tb2.Text = new String(tb1.Text.Where(c => c != ' ').ToArray()); //需要添加using System.Linq;需要.Net 3.5以上
    或者使用StringBuilder:
    StringBuilder sb = new StringBuilder();//using System.Text;
    foreach(char c in tb1.Text)
    {
        if (c != ' ') { sb.Append(c); }
    }
    tb2.Text = sb.ToString();
      

  3.   

    他如果只是想给lb2赋值的话 干嘛弄得那么麻烦 直接赋值不就完了?
    又是char[] 又是StringBuilder 搞不懂。
      

  4.   

    tb2.Text = tb1.Text.Replace(" ", "");
      

  5.   


    正解toString()方法在没有重写的情况下输出的是自身的类型。
    你在ArrayList的变量上调用,当然就是输出system.Collections.ArrayList
      

  6.   

    谢谢,各位高手
    我自己搞明白了
    可以将arrarylist变成字符数组
    或者深刻理解arrarylist的数组本质
    这两种方法都可以解决!
    再次谢谢