C# 使用返回列表中的变量<&燃气轮机;方法

C# 使用返回列表中的变量<&燃气轮机;方法,c#,list,variables,methods,C#,List,Variables,Methods,希望这次是一个非常简单的问题。我在数据库连接器类中有一个Select方法,如下所示 public List <string> [] Select(string mQuery) { //Create a list to store the result List<string>[] datalist = new List<string>[1]; datalist[0] = new List<string>();

希望这次是一个非常简单的问题。我在数据库连接器类中有一个Select方法,如下所示

  public List <string> [] Select(string mQuery)
{

    //Create a list to store the result
    List<string>[] datalist = new List<string>[1];
    datalist[0] = new List<string>();


    //Open connection
    if (this.OpenConnection() == true)
    {
        //Create Command
        MySqlCommand cmd = new MySqlCommand(mQuery, mConnection);
        //Create a data reader and Execute the command
        MySqlDataReader dataReader = cmd.ExecuteReader();

        //Read the data and store them in the list
        while (dataReader.Read())
        {
            datalist[0].Add(dataReader["id"] + "");

        }

        //close Data Reader
        dataReader.Close();

        //close Connection
        this.CloseConnection();

        //return list to be displayed
        return datalist;
    }
    else
    {
        return datalist;
    }
}
但是因为返回的值是一个列表,我是否需要像这样将这个变量分配给一个新列表

 List<string>[] results = new List<string>[1];
                       results[0] = new List<string>();
                       results = mDB.Select(mQuery);
                       string result = results[0].ToString();

                       MessageBox.Show(result);
List[]结果=新列表[1];
结果[0]=新列表();
结果=mDB.Select(mQuery);
字符串结果=结果[0]。ToString();
MessageBox.Show(结果);
此消息框仅生成“System.Collections.Generic.List1(System.String)”


关于我做错了什么的逻辑有什么想法吗?

试着不要将列表包装成数组

 List<string> results = new List<string>();
 results = mDB.Select(mQuery);
 string result = results[0].ToString();

 MessageBox.Show(result);
列表结果=新列表();
结果=mDB.Select(mQuery);
字符串结果=结果[0]。ToString();
MessageBox.Show(结果);

无论如何,问题是您试图显示一个列表,默认情况下,该列表只返回其类型。您应该显示列表的成员,而不是列表本身。

如果您试图以逗号分隔的方式显示列表的内容,您可以执行以下操作:

MessageBox.Show(string.Join(",", list));
您得到“System.Collections.Generic.List1(System.String)”的原因是
列表的
ToString
只返回其类型的字符串表示形式

另外,正如其他人所指出的,您应该丢失数组。你所追求的是:

public List<string> Select(string mQuery)
{
    //...
}

List<string> list = mDB.Select(mQuery);
MessageBox.Show(string.Join(",", list));
公共列表选择(字符串mQuery)
{
//...
}
List List=mDB.Select(mQuery);
Show(string.Join(“,”,list));

您不需要执行ToString()。它已经是stringresults的列表[0]也是一个集合。结果[0]包含您的数据库列。必须选择其中一列
public List<string> Select(string mQuery)
{
    //...
}

List<string> list = mDB.Select(mQuery);
MessageBox.Show(string.Join(",", list));