1
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; 

ありがとうございました

4

7 に答える 7

10

List<string>メソッドの戻り値の型が の場合、a を返していList<Part>ます。

于 2012-07-20T19:40:43.410 に答える
5

あなたのメソッドは を返したいのList<Parts>ですが、あなたは を返そうとしていますList<string>

于 2012-07-20T19:41:00.490 に答える
5
List<string> is not the same as List<Parts>

間違ったタイプのリストを返そうとしています。あなたのメソッド宣言:

public List<Parts> GetParts()

以下を返すことを指定します。

List<Parts>

ただし、あなたは戻ってきます:

List<string>

修正するには、関数内のリストを作成してList<Parts>追加Partsする必要があります。または、戻り値の型をに変更しますList<string>

単純なエラーです。私は自分で数回作成しました。

于 2012-07-20T19:41:23.767 に答える
5

List<Parts>メソッドが a を返す必要があるのに、ユーザーが a を返そうとすると、エラーが発生します。List<string>

于 2012-07-20T19:41:27.090 に答える
3

List<string>を返す関数から aを返そうとしていますList<Parts>

関数の戻り値の型と返すものの型は一致する必要があります。

于 2012-07-20T19:41:46.183 に答える
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());
}
于 2012-07-20T19:44:03.203 に答える
1

SELECT を実行して、文字列のリストをパーツのリストに変換できます。

そのようなパーツクラスがあると仮定します

class Parts{
    string TitleName { get; set; }
    public Parts(){ }

}

あなたができるreturn lst.Select( str => new Parts(){ TitleName = str });

于 2012-07-20T19:55:44.510 に答える