我有两个类对象列表:
private List<IntVector> UserData = new List<IntVector>();
private List<IntVector> EditData = new List<IntVector>();
UserData
是主列表,EditData
是另一个用于添加,删除或修改列表的列表。其中一个类memeber是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; }
}
}
答案 0 :(得分:1)
假设IntVector
是一个结构,IList.Union
方法通过合并列表并删除重复项来完成所需的操作:
UserData = UserData.Union(EditData).ToList();
如果它不是结构..那么你仍然可以执行上述操作,但是你必须重载等于运算符,Equals
以及可能GetHashCode
。
答案 1 :(得分: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();