如何在c#中返回List

本文关键字:返回 List | 更新日期: 2023-09-27 18:06:01

下面我有一个我想创建的方法。该方法的总体目标是创建一个列表,用SQL打开数据库,并将该信息转换为字符串。问题,虽然我有返回所有的数据。我理解一个方法的工作,你需要某种类型的返回语句,但是当我试图返回列表,它一直告诉我

不能隐式转换类型"System.Collections.Generic.List(Namespace)"。MyHome' to '(命名空间)。MyHome

所以我的问题是,我可以返回列表,或者我必须创建另一个变量返回,或者我试图返回完全错误的东西?

下面是我正在研究的方法。为了解释,这个方法使用了我创建的一个类,该类保存了我试图获取的数据的凭据。

 private static MyHome GetUserDataFromMyHome(string username)
    {
        List<MyHome> myHomeInformation = new List<MyHome>();
        using (SqlConnection connection = new SqlConnection(Properties.Settings.Default.MyHomeConnectionString))
        {
            SqlCommand command = connection.CreateCommand();
            command.CommandText = @"SELECT USER_NAME, EMAIL, FIRST_NAME, LAST_NAME, TRAVELER_UID FROM DATA_BASE";
            connection.Open();
            SqlDataReader reader = sqlError.ExecuteReader();
            while (reader.Read())
            {
                MyHome userInformation = new MyHome();
                foreach (MyHome item in myHomeInformation)
                {
                    userInformation.myHomeUserName = Utilities.FromDBValue<string>(reader["USER_NAME"]);
                    userInformation.myHomeEmail = Utilities.FromDBValue<string>(reader["EMAIL"]);
                    userInformation.myHomeFirstName = Utilities.FromDBValue<string>(reader["FIRST_NAME"]);
                    userInformation.myHomeLastName = Utilities.FromDBValue<string>(reader["LAST_NAME"]);
                    userInformation.myHomeTravelerUID = Utilities.FromDBValue<string>(reader["TRAVELER_UID"]);
                    myHomeInformation.Add(userInformation);
                }
            }
        }
        return myHomeInformation;
    }

下面是保存凭证的类:

class MyHome : IEnumerable<MyHome>
{
    public string myHomeUserName { get; set; }
    public string myHomeEmail { get; set; }
    public string myHomeFirstName { get; set; }
    public string myHomeLastName { get; set; }
    public string myHomeTravelerUID { get; set; }
}

如何在c#中返回List

Replace

private static MyHome GetUserDataFromMyHome(string username)

private static List<MyHome> GetUserDataFromMyHome(string username)

返回类型应该是一个对象列表,而不仅仅是一个对象

List<MyHome>不是MyHome。如果你想让你的函数返回一个List<MyHome>,就这样声明:

你必须声明函数的返回类型为MyHome的List。

private static List<MyHome> GetUserDataFromMyHome(string username)

否则,无论调用this的是什么,都希望得到一个MyHome的实例。