C# - 如何返回Array以设置Class属性

时间:2016-03-03 11:30:45

标签: c#

我正在尝试创建一个可以调用查询数据库的类方法。函数本身有效但由于某种原因,当返回数组时,它们不是set

我的功能代码是:

public Configuration[] tbl_bus(string type, string match)
{

    // Create Obejct Instance
    var db = new rkdb_07022016Entities2();
    // Create List
    List<Configuration> ConfigurationList = new List<Configuration>();

    // Allow Query
    if (type.ToLower() == "bustype")
    {
        foreach (var toCheck in db.tblbus_business.Where(b => b.BusType == match))
        {
            // Create Class Instance
            var model = new Configuration { Name = toCheck.Name, BusinessID = toCheck.BusinessID };
            // Append to the property
            ConfigurationList.Add(model);
        }
    }
    else if (type.ToLower() == "businessid")
    {
        foreach (var toCheck in db.tblbus_business.Where(b => b.BusinessID == match))
        {
            // Create Class Instance
            var model = new Configuration { Name = toCheck.Name, BusinessID = toCheck.BusinessID };
            // Append to the property
            ConfigurationList.Add(model);
        }
    }

    return ConfigurationList.ToArray();

}

我的配置代码是:

public class Configuration
{

    // Properties of the Database
    public string Name { get; set; }
    public string BusinessID { get; set; }
    public string Address { get; set; }

}

public Configuration Config { get; set; }

public Controller()
{
    this.Config = new Configuration();
}

在我的处理程序上我正在做:

// Inside the NameSpace area
Controller ctrl;

// Inside the Main Void
ctrl = new Controller();
ctrl.tbl_bus("bustype", "CUS");
context.Response.Write(ctrl.Config.Name);

我尝试观看Class函数,但它确实创建了数组,当我看到ctrl.Config.Name它始终设置为NULL时。任何人都可以帮助我理解为什么return实际上setting是否属于Configuration类中的属性?

编辑:该功能确实运行,并在将bus_type与customer匹配时获取3006行数据。 (它是一个大型数据库) - 只是,属性永远不会在return上设置。

编辑:是否有特定的方法将数组返回到set属性?

提前致谢!

2 个答案:

答案 0 :(得分:3)

Configs中的Controller更改为array

public Configuration[] Configs { get; set; }

tbl_bus功能更改为无效,并在功能内设置Configs

public void tbl_bus(string type, string match)
{
    // do your code
    // set the configs here
    Configs = ConfigurationList.ToArray();
}

希望它有所帮助。

答案 1 :(得分:2)

虽然这不是您问题的完整答案,但问题可能在于您没有对该方法返回的数组执行任何操作。您只需立即丢弃它。如果您将代码更改为

ctrl = new Controller();
Configuration[] config = ctrl.tbl_bus("bustype", "CUS");

稍后您将能够引用该数组。

Console.WriteLine(config.Length);

现在您可以使用它来设置您喜欢的任何属性。