1

我有两个类对象列表:

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

UserData是主列表,EditData是另一个用于添加、删除或修改列表的列表。班级成员之一是CaseNo不会改变 IntVector 的。

我已在 中进行了更改,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();

如果它不是 struct.. 那么您仍然可以执行上述操作,但是您必须重载相等运算符,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 回答