C# 如何创建包含多个复杂对象类型列表的模型<&燃气轮机;

C# 如何创建包含多个复杂对象类型列表的模型<&燃气轮机;,c#,C#,我将如何创建一个模型来存储多个复杂的对象类型、强类型以及将来更复杂的对象类型的可伸缩性 ?表示类应该在什么位置,但不确定该做什么 这其中最大的警告是列表应该可以混合,所以我认为仅仅包装每种复杂类型的列表是行不通的 即产出 苹果(水果) 胡萝卜(蔬菜) 葡萄(水果) 洋葱(蔬菜) 芒果(水果) 示例代码 // Models public class Fruit { string Name {get;set} bool IsSweet {get;set} } public cl

我将如何创建一个模型来存储多个复杂的对象类型、强类型以及将来更复杂的对象类型的可伸缩性

表示类应该在什么位置,但不确定该做什么

这其中最大的警告是列表应该可以混合,所以我认为仅仅包装每种复杂类型的列表是行不通的

即产出

  • 苹果(水果)
  • 胡萝卜(蔬菜)
  • 葡萄(水果)
  • 洋葱(蔬菜)
  • 芒果(水果)
示例代码

// Models
public class Fruit
{
    string Name {get;set}
    bool IsSweet {get;set}
}

public class Vegetable
{
    string Name {get;set}
    bool IsGross {get;set}
}

// Controller Action
public ActionResult ViewFood(int userId)
{
    ??? foods = GetFood(userId);
    return View(foods);
}

// View
@model List<???>

<ul>
@foreach(var item in model)
{
    if(item is Fruit)
    {
        <li>@Name - @IsSweet</li>
    }
    else if(item is Vegetable)
    {
        <li>@Name - @IsGross</li>
    }
}
</ul>

// Buisness Layer 
public ??? GetFood(int userId)
{
    var fruits = repo.Get<Fruit>(f => f.UserId == userId).ToList();
    var vegatbles = repo.Get<Vegetable>(v => v.UserId == userId).ToList();

    return ???
}
//模型
公共级水果
{
字符串名称{get;set}
布尔IsSweet{get;set}
}
公营蔬菜
{
字符串名称{get;set}
bool IsGross{get;set}
}
//控制器动作
公共操作结果视图食品(int userId)
{
?食品=获取食品(用户ID);
返回视图(食品);
}
//看法
@模型列表
    @foreach(模型中的var项目) { 如果(项目为水果) {
  • @名称-@IsSweet
  • } 否则,如果(项目为蔬菜) {
  • @名称-@IsGross
  • } }
//业务层 公众???GetFood(int用户ID) { var fruits=repo.Get(f=>f.UserId==UserId.ToList(); var vegatbles=repo.Get(v=>v.UserId==UserId.ToList(); 返回??? }
您可以为
水果
蔬菜
-
食品
创建公共基类:

class Food {
    public String Name { get; set; }
}

class Fruit : Food {
    public bool IsSweet { get; set; }
}

class Vegetable : Food {
    public bool IsGross { get; set; }
}
食物替换所有



或者,使用
dynamic

可以为
水果
蔬菜
-
食品
创建公共基类:

class Food {
    public String Name { get; set; }
}

class Fruit : Food {
    public bool IsSweet { get; set; }
}

class Vegetable : Food {
    public bool IsGross { get; set; }
}
食物替换所有


或者,使用
dynamic