Cannot implicitly convert type 'System.Collections.Generic.List<string>'
to 'System.Collections.Generic.List<Parts>'
以下是生成此错误的代码。我很确定我做的事情很傻。
public class Parts
{
public string computername { get; set; }
public List<Parts> GetParts()
{
List<string> lst = new List<string>();
//The object that will physically connect to the database
using(SqlConnection cnx = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["request"].ConnectionString))
{
//The SQL you want to execute
SqlCommand cmd = new SqlCommand("SELECT * FROM REQUESTS", cnx);
//Open the connection to the database
cnx.Open();
//execute your command
SqlDataReader dataReader = cmd.ExecuteReader();
{
//Loop through your results
while(dataReader.Read())
{
lst.Add(Convert.ToString(dataReader["titlename"]));
}
}
}
return lst;
}
}
错误一直指向这一行:
return lst;
谢谢
答案 0 :(得分:10)
当方法返回类型为List<string>
时,您将返回List<Part>
。
答案 1 :(得分:5)
您的方法想要返回List<Parts>
,但您尝试返回List<string>
答案 2 :(得分:5)
List<string> is not the same as List<Parts>
您正在尝试返回错误类型的列表。你的方法声明:
public List<Parts> GetParts()
指定您返回:
List<Parts>
但是你要回来了:
List<string>
要更正,您应该将功能中的列表设为List<Parts>
并添加Parts
。或者将返回类型更改为List<string>
一个简单的错误,我自己做了几次。
答案 3 :(得分:5)
发生错误是因为该方法应返回List<Parts>
,并且您尝试返回List<string>
答案 4 :(得分:3)
您正在尝试从返回List<string>
的函数返回List<Parts>
。
函数返回值的类型和返回的类型需要匹配。
答案 5 :(得分:2)
方法GetParts()的返回类型为List<Parts>
,但在函数中,您尝试返回List<string>
试试这个:
public List<Parts> GetParts()
{
List<Parts> lst = new List<Parts>();
using (SqlConnection cnx = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["request"].ConnectionString))
{
SqlCommand cmd = new SqlCommand("SELECT * FROM REQUESTS", cnx);
cnx.Open();
Parts parts = null;
SqlDataReader dataReader = cmd.ExecuteReader();
{
while (dataReader.Read())
{
parts = new Parts();
parts.computername = dataReader["titlename"].ToString();
lst.Add(parts);
}
}
}
return lst;
}
public void SomeMethod(List<Parts> parts)
{
List<string> title = new List<string>();
foreach(var item in parts)
{
title.Add(item.titlename);
}
this.ddlPartsTitle.Datasource = title;
this.ddlPartsTitle.DataBind();
}
public YourClassName()
{
this.SomeMethod(this.GetParts());
}
答案 6 :(得分:1)
您可以执行SELECT将字符串列表转换为部件列表。
假设你有一个像这样的零件类
class Parts{
string TitleName { get; set; }
public Parts(){ }
}
你可以return lst.Select( str => new Parts(){ TitleName = str });