在var数组中存储两个不同的对象?

时间:2013-06-24 04:50:49

标签: c# asp.net arrays object var

在C#中有一种方法可以在var数组中存储几个不同的视图模型对象吗?

示例:

var user_model = db.Database.SqlQuery<User>("SELECT * FROM [User]").ToList();
var product_model = db.Database.SqlQuery<Product>("SELECT * FROM [Product]").ToList();

var my_models = new[]{ user_model, product_model };
string[] object_titles = { "User" , "Product" };

for( int i=0 ; i<my_models.Length ; i++ ){

if( my_models[i].Count() != 0 )

    return View("../"+ object_titles[i] +"/Index", my_models[i]);

}

不幸的是,上面的例子不起作用,我不知道如何解决这个问题。 任何人都可以给我一个提示,如何解决?

2 个答案:

答案 0 :(得分:3)

如果我误解了,请原谅我,但是,这不会更容易,更容易:

var user_model = db.Database.SqlQuery<User>("SELECT * FROM [User]").ToList();
var product_model = db.Database.SqlQuery<Product>("SELECT * FROM [Product]").ToList();

if(user_model.Any())
{
    return View("../User/Index", user_model);
}
else if(product_model.Any())
{
    return View("../Product/Index", product_model);
}
// return a default view or some other magic ...

答案 1 :(得分:1)

var my_models = new IEnumerable<object>[] { user_model, product_model };

试试这个