私はクラスのリストを持っています。メンバーを追加したいのですが、これをどうやって達成するのですか?クラス内のクラスのリストを追加するには(可能であればリフレクションが望ましい)
void Main()
{
var a1 = new A(){id =2};
var a2 = new A(){id =3, xx=1};
var a3 = new A(){id =2, yy=2};
var a4 = new A(){id =2, xx=4, yy=6};
var a5 = new A(){cc = new C(){id =2, xx=1}};
var a6 = new A(){cc = new C(){id =2}};
var a7 = new A(){cc = new C(){id =2}};
var b = new B();
b.SomeMethod(new List<A>{a1, a2, a3, a4, a5, a6, a7});
}
クラスCはクラスAの内部で使用されます。どちらのクラスも3つの空のAPIであるため、変更できません。
public class A
{
public int id {get;set;}
public int xx {get;set;}
public int yy {get;set;}
public C cc {get; set;}
}
public class C
{
public int id {get;set;}
public int xx {get;set;}
public int yy {get;set;}
}
今
の代わりに、クラスのリストに、クラスの単一のメンバーを追加し、私はクラスの内部のすべてのメンバーが加算されるクラスのリターンでお願いします。
public class B
{
public void SomeMethod(IList<A> listOfA)
{
int result1 = listOfA.Sum(A => A.id);//return 9
int result2 = listOfA.Sum(A => A.xx);//return 5
int result3 = listOfA.Sum(A => A.yy);//return 8
int result4 = listOfA.Where(A=>A.cc != null).Sum(A => A.cc.id);
//return 6
//var resultAll = ???;//return new A(){id = 9, xx = 5, yy = 8, cc = new C(){id =6, xx = 1}}
}
}
基本的に私はあなたが和を計算する前にnull
値をチェックしていることを確認する必要があり
//var resultAll = ???;//return new A(){id = 9, xx = 5, yy = 8, cc = new C(){id =6, xx = 1}}
、問題文の質問ですが...? http://stackoverflow.com/help/mcve –
申し訳ありませんが、長い勤務時間のため、私は正しい考え方ではありません。私は質問を更新しました、私はそれが少しでも数時間で私の心をクリアするために眠ると思います。もう一度謝ります。 – user3663854