C# 合并两个或多个对象并显示其总和

C# 合并两个或多个对象并显示其总和,c#,C#,我想合并这两个对象,并在新对象中显示它们的总和 我想实现的第一个目标是我有两个目标,目标销售额为100,然后结果必须是200 第二个我想实现的是两个对象具有数组,数组包含不同的值。 如果两个对象合并,则新对象中的数组值就是两个对象的值 我班的一个简单例子 public class IncentivePayout { public decimal Sales { get; set; } public List<IncentivePayoutDetai

我想合并这两个对象,并在新对象中显示它们的总和

我想实现的第一个目标是我有两个目标,目标销售额为100,然后结果必须是200

第二个我想实现的是两个对象具有数组,数组包含不同的值。 如果两个对象合并,则新对象中的数组值就是两个对象的值

我班的一个简单例子

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;
}