【C#数据结构】为什么输出的是object[] Array ,而不是输出1 2 3 4

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test.SeqList
{
class SeqList
{
private int maxsize; //顺序表的最大容量

    public int Maxsize
    {
        get { return maxsize; }
        set { maxsize = value; }
    }
    public  object[] data;    
    private int length;  //顺序表的实际长度

    public int Length
    {
        get { return length; }
        set { length = value; }
    }

    //初始化线性表
    public SeqList(int size)
    {
        maxsize = size;
        data = new object[maxsize];
        length = 0;
    }

    //判断顺序表是否满
    public bool IsFull()
    {
        if (length == maxsize)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    //在顺序表的末尾追加数据元素
    public object[]  InsertNode(object a)
    {
        //if (IsFull())
        //{
        //    Console.WriteLine("列表为空");

        //}

        data[length] = a;
        length++;
        return data;
    }

    //在顺序表的第i个数据元素的位置插入一个数据元素
    public object[]  InsertNode(object a, int i)
    {
        if (IsFull())
        {
            Console.WriteLine("列表为空");

        }

        if (i < 1 || i > length + 1)
        {
            Console.WriteLine("位置错误");

        }
        else
        {
            for (int j = length - 1; j >= i - 1; j--)
            {
                data[j + 1] = data[j];
            }
            data[i - 1] = a;
        }

        length++;

        return data;
    }

    //判断顺序表是否为空
    public bool IsEmpty()
    {
        if (length == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }



    //删除顺序表的第i个数据元素
    public void DeleteNode(int i)
    {
        if (IsEmpty())
        {
            Console.WriteLine("列表为空");
            return;
        }

        if (i < 1 || i > length)
        {
            Console.WriteLine("位置错误");
            return;
        }

        for (int j = i; j < length; j++)
        {
            data[j - 1] = data[j];
        }
        length--;
    }

    //获得数据表的第i个数据元素
    public object[] SearchNode(int i)
    {
        if (IsEmpty() || (i < 1) || (i > length))
        {
            Console.WriteLine("列表为空或位置错误");

        }
        return (object[])data[i - 1];
    }

    //在顺序表中查找值为value的数据元素
    public object[] SearchNode(object value)
    {
        if (IsEmpty())
        {
            Console.WriteLine("列表为空");

        }

        int i = 0;
        for (i = 0; i < length; i++)
        {
            if (data[i].ToString().Contains(value.ToString()))
            {
                break;
            }
        }

        if (i >= length)
        {

        }
        return (object[])data[i];
    }

    //求顺序表的长度
    public int GetLength()
    {
        return length;
    }

    //清空顺序表
    public void Clear()
    {
        length = 0;
    }

}

}

using System;
namespace Test.SeqList
{
interface ILinarList
{
void Clear();
void DeleteNode(int i);
int GetLength();
object[] InsertNode(object a, int i);
object[] InsertNode(object a);
bool IsEmpty();
bool IsFull();
object[] SearchNode(object value);
object[] SearchNode(int i);
}
}

![图片说明](https://img-ask.csdn.net/upload/201511/21/1448072044_106884.png)图片说明

看你的结果感觉你直接打印了一个数组变量

我没看到你的输出,
不过数组显示的时候得一个一个元素输出,不能整体输出

不是直接打印数组变量,我自己写是要将数组的元素显示出来,可是,显示的结果就变成这样
这个是书上写的代码,我直接抄进去的,书上的有错,我就改了,这个程序有错我发个比较完整的
书上的错误我找了很久,怎么改都不能正确输出

```using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CSharp.SeqList
{
class SeqList : CSharp.SeqList.ILinarList
{
private int maxsize; //顺序表的最大容量

    public int Maxsize
    {
        get { return maxsize; }
        set { maxsize = value; }
    }
    private T[] data;    //数组,用于存储数据表中的数据元素
    private int length;  //顺序表的实际长度

    public int Length
    {
        get { return length; }
        set { length = value; }
    }

    //初始化线性表
    public SeqList(int size)
    {
        maxsize = size;
        data = new T[maxsize];
        length = 0;
    }

    //判断顺序表是否满
    public bool IsFull()
    {
        if (length == maxsize)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    //在顺序表的末尾追加数据元素
    public void  InsertNode(T a)
    {
        if (IsFull())
        {
            Console.WriteLine("列表为空");
            return;
        }

        data[length] = a;
        length++;
        return data;
    }

    //在顺序表的第i个数据元素的位置插入一个数据元素
    public void InsertNode(T a, int i)
    {
        if (IsFull())
        {
            Console.WriteLine("列表为空");
            return;
        }

        if (i < 1 || i > length + 1)
        {
            Console.WriteLine("位置错误");
            return;
        }
        else
        {
            for (int j = length - 1; j >= i - 1; j--)
            {
                data[j + 1] = data[j];
            }
            data[i - 1] = a;
        }

        length++;
        return data;
    }

    //判断顺序表是否为空
    public bool IsEmpty()
    {
        if (length == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }



    //删除顺序表的第i个数据元素
    public void DeleteNode(int i)
    {
        if (IsEmpty())
        {
            Console.WriteLine("列表为空");
            return;
        }

        if (i < 1 || i > length)
        {
            Console.WriteLine("位置错误");
            return;
        }

        for (int j = i; j < length; j++)
        {
            data[j - 1] = data[j];
        }
        length--;
    }

    //获得数据表的第i个数据元素
    public T SearchNode(int i)
    {
        if (IsEmpty() || (i < 1) || (i > length))
        {
            Console.WriteLine("列表为空或位置错误");
            return default(T);
        }
        return data[i - 1];
    }

    //在顺序表中查找值为value的数据元素
    public T SearchNode(T value)
    {
        if (IsEmpty())
        {
            Console.WriteLine("列表为空");
            return default(T);
        }

        int i = 0;
        for (i = 0; i < length; i++)
        {
            if (data[i].ToString().Contains(value.ToString()))
            {
                break;
            }
        }

        if (i >= length)
        {
            return default(T);
        }
        return data[i];
    }

    //求顺序表的长度
    public int GetLength()
    {
        return length;
    }

    //清空顺序表
    public void Clear()
    {
        length = 0;
    }

}

}

using System;
namespace CSharp.SeqList
{
interface ILinarList
{
void Clear();
void DeleteNode(int i);
int GetLength();
void InsertNode(T a, int i);
void InsertNode(T a);
bool IsEmpty();
bool IsFull();
T SearchNode(T val);
T SearchNode(int i);
}
}
图片说明

SeqList sqlt;

    //添加
    private void btn_Add_Click(object sender, EventArgs e)
    {
        //获取文本框
        string textAdd = txt_Add.Text.Trim();
        //返回添加的数

        //显示
        lit_showData.Items.Add(sqlt.InsertNode(textAdd));
    }

我想要实现一个具有添加 删除 查询 修改 该线性表的功能的,书上的错误非常多,我改了许多次都不行



 按照你第一次所写的
InsertNode返回一个数组,
然后执行lit_showData.Items.Add(sqlt.InsertNode(textAdd));
这句不能这样写,
可以先
Object[] tmp = sqlt.InsertNode(textAdd);
然后将tmp的元素组合成字符串str
最后lit_showData.Items.Add(str);