Class Person
{
string Name
int yesno
int Change
List<Cars> Personcars;
houses Personhouses
}
Person user1 = new Person()
Person user2 = new Person()
user1.Name = "userName"
user2.Name ="";
user2.cars[0] = new car("Mazda");
user1.cars[0] = new car("BMW");
我想合并对象,以便user2将从user1
获取名称和汽车user2将具有此值
user2.Name将是userName user2.cars将持有Mazda和Bmw
谢谢!
答案 0 :(得分:3)
user2.Name = user1.Name;
user2.Personcars.AddRange(user1.Personcars);
您可以将此作为方法添加到类本身:
public class Person
{
List<Cars> _personcars;
public string Name { get; set; }
// what the hell is a yesno int? If it's 1 or 0 then just use a bool
public int yesno { get; set; }
public int Change { get; set; }
public List<Cars> Personcars
{
get
{
return _personcars ?? (_personCars = new List<Cars>());
}
set { _personcars = value; }
}
public Houses Personhouses { get; set; }
public void Merge(Person person)
{
Name = person.Name;
Personcars.AddRange(person.Personcars);
}
}
这将允许你写这样的东西:
user2.Merge(user1);
答案 1 :(得分:3)
试试这个扩展方法
public void Merge(this Person _person, Person source)
{
_person.Name = source.Name;
if(_person.Cars !=null)
{
_person.Cars.AddRang(source.Cars);
}
else
{
_person.Cars = source.Cars;
}
}