C# 使用返回列表中的变量<&燃气轮机;方法
希望这次是一个非常简单的问题。我在数据库连接器类中有一个Select方法,如下所示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>();
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));