gpt4 book ai didi

c# - 用不同类型的对象填充列表

转载 作者:行者123 更新时间:2023-11-30 15:59:47 24 4
gpt4 key购买 nike

我正在研究一种一切正常的推荐算法。但是现在我想将这段代码实现到我的开发团队的分支中。

我将从头开始。我的算法可以推荐两种类型的对象,餐厅和菜肴。

餐厅:

public class Restaurant
{
public Guid Id { get; set; }
public string Name { get; set; }
public Address Address { get; set; }
public List<Tag> Tags { get; set; } = new List<Tag>();
public int PriceRange { get; set; }
}

和菜:

public class Dish
{
public Guid Id { get; set; }
public string Name { get; set; }
public double Price { get; set; }
public virtual Restaurant rest { get; set; }
[ForeignKey("rest")]
public Guid RestaurantId { get; set; }
public List<Tag> Tags { get; set; }
}

现在我的产品负责人希望列表在我们的应用程序主页上呈现时是这样的:

[Restaurant][Dish][Restaurant][Dish] Etc...

基本上,他想更换推荐的对象类型。这些菜肴和餐厅是完全分开的。它们是我的算法完全根据用户的喜好生成的,彼此之间完全没有关联。

现在我的问题是如何返回这样一个列表。我想我需要一个包含 Restaurant 的包装器类或 Dish像这样:

public class RecommenderItem
{
public Restaurant rest { get; set; }
public Dish dish { get; set; }
}

这样我可以创建一个 List<RecommenderItem>并将其返回给客户。客户端只需要检查哪个属性为 null 并从不是 null 的属性中检索值。

我只是不确定这是否是正确的方法。这样做有什么“最佳做法”吗?如果我应该详细说明,请告诉我!

最佳答案

如果它们没有共同的基类,那么创建一个包装类是最好的解决方案。同时你可以更灵活地创建类似的东西

public class RecommendationItem
{
public Guid Id { get; set; }
public string Name { get; set; }
public string PageUrl { get; set; }
public object Entity { get; set; }
}

所以你可以在这个类中包含所有的公共(public)信息,客户将不需要检查他使用的是哪种对象类型。在这种情况下,再添加一种项目类型会更容易。在同一类型中,我添加了对实体本身的引用 - 如果需要对一种或两种项目类型进行某些特定处理,则可以使用它。

关于c# - 用不同类型的对象填充列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41124085/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com