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

本文关键字:存储 对象 var 数组 两个 | 更新日期: 2023-09-27 18:19:33

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]);
}

不幸的是,上面的例子不起作用,我不知道如何解决这个问题。有人能给我一个提示吗,如何解决它?

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

如果我理解错误,请原谅,但是,这不是容易得多吗:

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 ...
var my_models = new IEnumerable<object>[] { user_model, product_model };

试试这个