我想比较两个不同的列表与一个共同的属性(名称)。我尝试过.Contains()方法之类的东西,但这不起作用,因为我正在处理两个不同对象的列表。我在这样的问题尝试解决方案:比较两种不同类型的列表c#
C# Compare Two Lists of Different Objects
C#, compare two different type of lists
compare different type of list in c#
但是这些解决方案不工作,因为我的名单指望房产或动物对象,而不是一个“串”,这是我卡住的地方。
我有两个类:
public class Animal
{
public string Name = string.Empty;
public string XChromosome = string.Empty;
public string YChromosome = string.Empty;
}
public class Properties
{
public string Name = string.Empty;
public string Prop1 = string.Empty;
public string Prop2 = string.Empty;
}
两个名单是这样的:
List<Animal> = "name", "xposition", "yposition"
"name1", "xposition1", "yposition1" etc..
List<Properties> = "name", "prop1","prop2"
"name1", "prop3", "prop4" etc..
我想这样做的做的是,比较这两个列表,如果在“名称”比赛我想获得属于这个名字的两个列表的内容。我也尝试使用HashSet或字典,但这不是我正在寻找的。
创建一个可以实现的接口,它只包含name属性。然后有一个函数接受该接口的实例,并仅使用Name属性进行比较。 – ADyson
它们是否应该作为普通实体在您的代码库中进行处理?对我而言,基于名字,动物与属性没有任何关系,所以看起来不太可能需要以同样的方式对待它们。我认为@ADYSON陈述可能很简单,只是加入创建共享接口 – Icepickle
在代码中,我需要比较属性和染色体,唯一连接它们的就是名称。 –