[英]Compare two lists or datatable
我為員工准備了兩張Excel工作表,
一個具有當前狀態,一個具有舊狀態,
我想比較他們以檢查哪些雇員的身份已更改。
目前我有這個:
var result = from x in data.Worksheet<Employee>("Tradesmen")
select x;
和這個:
var resultNew = from x in dataNew.Worksheet<Employee>("Tradesmen")
select x;
其中result
是數據表具有舊狀態,而resultNew
是數據表具有當前狀態。
我試圖將這些數據表更改為這樣的列表:
masterEmployees = new List<Employee>();
foreach (var row in result)
{
masterEmployees.Add(new Employee(row.Code, row.Name, row.WorkingStatus));
}
foreach (var row in resultNew)
{
newEmployees.Add(new Employee(row.Code, row.Name, row.WorkingStatus));
}
其中, Employee
是一個具有Code
, Name
和WorkingStatus
字段的簡單類。
我想知道他們的狀態發生了變化的員工,我該如何在lists
做到這一點? 在datatable
這樣做更好嗎?
嘗試這個
var result = new List<Employee>();
var resultNew = new List<Employee>();
var changed = (from i in result
join j in resultNew on i.Code equals j.Code
where i.WorkingStatus != j.WorkingStatus
select new { Name = i.Name, OldWorkingStatus = i.WorkingStatus, NewWorkingStatus = j.WorkingStatus }).ToList();
別忘了
using System.Linq;
更新資料
如果您這樣做,我認為您會沒事的(resultNew變量也一樣)。
var result =(從data.Worksheet(“ Tradesmen”)中的x選擇x) .ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.