C# 合并两个或多个对象并显示其总和
我想合并这两个对象,并在新对象中显示它们的总和 我想实现的第一个目标是我有两个目标,目标销售额为100,然后结果必须是200 第二个我想实现的是两个对象具有数组,数组包含不同的值。 如果两个对象合并,则新对象中的数组值就是两个对象的值 我班的一个简单例子C# 合并两个或多个对象并显示其总和,c#,C#,我想合并这两个对象,并在新对象中显示它们的总和 我想实现的第一个目标是我有两个目标,目标销售额为100,然后结果必须是200 第二个我想实现的是两个对象具有数组,数组包含不同的值。 如果两个对象合并,则新对象中的数组值就是两个对象的值 我班的一个简单例子 public class IncentivePayout { public decimal Sales { get; set; } public List<IncentivePayoutDetai
public class IncentivePayout
{
public decimal Sales { get; set; }
public List<IncentivePayoutDetail> IncentivePayoutDetails { get; set; }
}
范例
totalEthical: {
target: 100,
incentivePayoutDetails: [
{
productFamilyName: X,
},
]
totalConsumer: {
target: 100,
incentivePayoutDetails: [
{
productFamilyName: Y,
},
]
我想要达到的结果是
newObject: {
target: 200,
incentivePayoutDetails: [
{
productFamilyName: X,
},
{
productFamilyName: Y,
},
]
好的,这是我的解决方案。很简单。 我想你的课可能是什么样子。如果有任何不一致之处,请尝试根据您的需要进行修改 如果代码共享不起作用:
class Ethical{
public int SomeValue = {get;private set;}
public List<PayoutDetails> details = {get; private set;}
public Ethical(int SomeValue){
this.SomeValue = SomeValue;
this.details = new List<PayoutDetails>();
}
public Ethical(){
this.SomeValue = 0;
this.details = new List<PayoutDetails>();
}
public void AddPayoutDetails(PayoutDetails details){
this.details.add(details);
}
public void AddPayoutDetails(List<PayoutDetails> details){
details.ForEach(el => this.details.Add(el));
}
public void AddToValue(int anyNumber){
SomeValue += anyNumber;
}
}
//for merging 2 objects
public static Ethical sumEthicalProperties(Ethical obj1, Ethical obj2){
Ethical newObj = new Ethical(obj1.SomeValue + obj2.SomeValue)
newObj.Add(obj1.details);
newObj.Add(obj2.details);
return newObj;
}
//MoreUniversal
public static Ethical sumEthicalProperties(params Ethical[] objs){
int fullSum = 0;
Ethical newObj = new Ethical()
foreach(Ethical singleObj in objs){
fullSum += singleObj.SomeValue;
newObj.AddPayoutDetails = singleObj.details;
}
newObj.AddToValue(fullSum;
return newObj;
}
职业道德{
public int SomeValue={get;private set;}
公共列表详细信息={get;private set;}
公共道德(价值观){
this.SomeValue=SomeValue;
this.details=新列表();
}
公共道德(){
this.SomeValue=0;
this.details=新列表();
}
公共作废AddPayoutDetails(PayoutDetails){
this.details.add(details);
}
公共作废AddPayoutDetails(列表详细信息){
details.ForEach(el=>this.details.Add(el));
}
public void AddToValue(int anyNumber){
SomeValue+=anyNumber;
}
}
//用于合并2个对象
公共静态道德总体属性(道德obj1、道德obj2){
道德新建OBJ=新道德(obj1.SomeValue+obj2.SomeValue)
新增OBJ.Add(obj1.details);
新增OBJ.Add(obj2.details);
返回newObj;
}
//更普遍
公共静态道德资产(params Ethical[]objs){
整数整和=0;
道德的newObj=新道德的()
foreach(objs中的道德单一OBJ){
fullSum+=singleObj.SomeValue;
newObj.AddPayoutDetails=singleObj.details;
}
newObj.AddToValue(全额;
返回newObj;
}
这是一个json还是一个类?欢迎来到SO。你能展示一下你迄今为止的尝试吗。这是c#objects你能在这个问题上添加你的类吗?是的。我有一个类。当然。这是成为APIG的c#objects谢谢你的回答,请在你的问题中添加c#code,因为链接可能会随着时间的推移而中断。谢谢Oleg的想法我的问题现在解决了
class Ethical{
public int SomeValue = {get;private set;}
public List<PayoutDetails> details = {get; private set;}
public Ethical(int SomeValue){
this.SomeValue = SomeValue;
this.details = new List<PayoutDetails>();
}
public Ethical(){
this.SomeValue = 0;
this.details = new List<PayoutDetails>();
}
public void AddPayoutDetails(PayoutDetails details){
this.details.add(details);
}
public void AddPayoutDetails(List<PayoutDetails> details){
details.ForEach(el => this.details.Add(el));
}
public void AddToValue(int anyNumber){
SomeValue += anyNumber;
}
}
//for merging 2 objects
public static Ethical sumEthicalProperties(Ethical obj1, Ethical obj2){
Ethical newObj = new Ethical(obj1.SomeValue + obj2.SomeValue)
newObj.Add(obj1.details);
newObj.Add(obj2.details);
return newObj;
}
//MoreUniversal
public static Ethical sumEthicalProperties(params Ethical[] objs){
int fullSum = 0;
Ethical newObj = new Ethical()
foreach(Ethical singleObj in objs){
fullSum += singleObj.SomeValue;
newObj.AddPayoutDetails = singleObj.details;
}
newObj.AddToValue(fullSum;
return newObj;
}