Listから継承するカスタムコレクションを作成しました。私は自分のデータに機能するメソッドを作成しました。すべての私の操作は、コレクション内のプライベートフィールドから行われます。リストから継承したカスタムコレクションからinnerlistを返す<T>
このオブジェクトを参照するようにプライベートフィールドを設定していますので、計算を行うためにデータを並べ替える必要があります。私はLinqとそれをやって、* これはと私のプライベートフィールドは同じです。しかし、Linqで行われた変更はこのオブジェクトを変更しません。私が作ったすべての変更はそれを変更しますが。彼らはメモリ内の同じ空間を参照するため、
class OrdersDetailCollection : List<OrdersDetail>
{
List<OrdersDetail> _List;
public OrdersDetailCollection(IEnumerable<OrdersDetail> input)
{
this.AddRange(input);
_List = this;
_List = (from l in _List
orderby l.Item, l.DateExp
select l).ToList();
}
public void CalculateQty()
{
RemoveDuplicate();
_List = (from l in _List
where double.Parse(l.QteBO) > 0
orderby l.DateExp, l.Item
select l).ToList();
}
private void RemoveDuplicate()
{
//Do some stuff to _List
}
はこのと_Listは同じではないでしょうか?これに_Listを割り当てる方法は?
私のカスタムコレクションには何がありませんので、リストと同じ方法で使えますか?
OrdersDetailCollection ShipList = new OrdersDetailCollection(/*Value from SQL*/)
ShipList.CalculateQty();
return ShipList;
私は収量はそれとは何かを持っているかもしれませんが、本当によくそれを理解していない考えています、拡張メソッドなしでこれを行う方法を知りたいです。
カプセル化することで、より具体的になることができますか?なぜなら、_Listを返すPropertyを持つことによってそれを機能させていて、継承は本当に必要ないからです。 Listを拡張して関数からの呼び出しでコンテンツを操作する方法であれば(私の知る限り)知りたかっただけです。別のクラスを継承しているかもしれませんか? – Nigol
@Nigol - 関数を変更しました。あなたは確かに*リストを突然変異させることができます - たとえば、Clear、Sort、Add、Removeなどを呼び出します。 –
ok私はあなたが何を意味するか見ています。しかし、私はすべてのLinqクエリの後にAddRangeとクリアする必要があります。 – Nigol