1

クラスオブジェクトのリストが2つあります。

private List<IntVector> UserData = new List<IntVector>();
private List<IntVector> EditData = new List<IntVector>();

UserDataはマスターリストであり、EditDataリストを追加、削除、または変更するために使用される別のリストです。クラスメンバーの1つは、IntVectorCaseNoでは変更されないものです。

に変更を加えましたEditDataが、変更をにマージしたいと思いUserDataます。

それを行う方法はありますか?

編集:これがの定義ですIntVector

class IntVector
    {
        //private DateTime date_kept;
        private string date1;
        private string next_date;
        private string presence;
        private string next_hearing_time;


        //private Hashtable case_type;
        private string court_name;
        private string case_no;
        private string status;
.
.
.
        public string Date1
        {
            set { this.date1 = value; }
            get { return this.date1; }
        }

        public string NextDate
        {
            get { return this.next_date; }
            set { this.next_date = value; }
        }

}
4

2 に答える 2

1

IntVector構造体であると仮定すると、IList.Unionメソッドはリストをマージして重複を削除することにより、必要なことを実行します。

UserData  = UserData.Union(EditData).ToList();

Equals構造体でない場合でも、上記を実行できますが、等式演算子をオーバーロードする必要がありますGetHashCode

于 2012-12-11T05:03:31.150 に答える
0

私はあなたが探しているものは次のようなものだと思います:

UserData = (from u in UserData
                      join e in EditData
                      on u.CaseNo equals e.CaseNo
                      into joined
                      from x in joined.DefaultIfEmpty()
                      select new IntVector
                      {
                          CaseNo = u.CaseNo,
                          Data = x == null ? u.Data : x.Data
                      }).ToList();
于 2012-12-11T05:01:35.547 に答える