我有两个 ActionItem 对象列表:
ListA<ActionItem>;
ListB<ActionItem>;
public class ActionItem
{
#region Public Properties
public string ConnectionId { get; set; }
public int MachineId { get; set; }
public OperationType OperationType { get; set; }
public MachineOperationStatus OperationStatus { get; set; }
public string PackageId { get; set; }
public DateTime StartTime { get; set; }
public TabType TabType { get; set; }
public PageType PageType { get; set; }
#endregion
}
我想加入两个列表 ListA 和 ListB,仅考虑 MachineId 和 PackageId。
IEnumerable<ActionItem> collection = this.ListA .Union(this.ListB);
问题是 ListA 可能没有填写所有对象的数据。例如:
ListA will have machineId = 19, packageId = "abc"
其余的将是默认值。
ListB will have machineId = 19, packageId = "abc", StartTime = "2/3/2012".
所以我想得到 1 行的结果,如下所示:machineId = 19,packageId = "abc",StartTime = "2/3/2012"。
由于 ListA 缺少信息,因此执行联合操作会返回 2 行而不是 1 行。我希望结果从 ListB 返回信息(因为 ListB 将始终有更多信息,除非 ListB 没有该项目(machineId,packageId))仅在 machineId 和 packageId 上进行加工。
谢谢