假设我有一个ObservableCollection<Person>
。
现在,每个学生都可以对其他人有一些看法。编写这样的代码,以便从两个对象都可以访问它,最好的方法是什么?
我考虑过这样的关系:
enum RelationPoint { Neutral, Like, Dislike, Love, Hate }
List<RelationPoint> relation;
我如何为每个人定义这样的东西?
您可以创建一个对象,将意见存储在对象中,如下所示:
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");
这只是众多解决方案之一。