Person类的两个对象之间的关系系统

本文关键字:两个 对象 之间 关系系统 Person | 更新日期: 2023-09-27 18:27:41

假设我有一个ObservableCollection<Person>

现在,每个学生都可以对其他人有一些看法。编写这样的代码,以便从两个对象都可以访问它,最好的方法是什么?

我考虑过这样的关系:

enum RelationPoint { Neutral, Like, Dislike, Love, Hate }
List<RelationPoint> relation;

我如何为每个人定义这样的东西?

Person类的两个对象之间的关系系统

您可以创建一个对象,将意见存储在对象中,如下所示:

public class Opinion
{
    public Person Destination
    {
        get;
        set;
    }
    public Person Target
    {
        get;
        set;
    }
    public RelationPoint RelationType
    {
        get;
        set;
    }
}

如果你把它们这样存储在一个列表中,每个人都可以对另一个pseson有意见。

要想弄清楚,哪个人有哪个眼镜,你只需使用linq:就能找到

var goodRelation = listOfOption.Where(item => item.RelationType == RelationPoint.Like && item.Destination = <<Some Person>>);

现在你知道了,Destination喜欢哪个人。

一个解决方案是创建一个名为"Relation"的对象,该对象包含两个人。

所以你会有以下类别:

public class Person
{
   public String Name;
   ....
}

和一个类别"关系:

public class Relation
{
   private Person p1;
   private Person p2;
   private String opinion;
}

现在你可以做这样的东西:

Person p = new Person ("John");
Person p2 = new Person ("David");
Relation r1 = new Relation(p, p2, "Neutral");

这只是众多解决方案之一。