ActionItemオブジェクトのリストが2つあります。
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
}
MachineIdとPackageIdのみを考慮して、ListAとListBの2つのリストに参加したいと思います。
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に情報がないため、Union操作を実行すると、1行ではなく2行が返されます。結果がListBから情報を返すようにしたいと思います(ListBには常により多くの情報があるため、ListBにそのアイテム(machineId、packageId)がない場合を除きます)は、machineIdとpackageIdでのみ動作します。
ありがとう