簡體   English   中英

比較兩個列表或數據表

[英]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是一個具有CodeNameWorkingStatus字段的簡單類。

我的問題

我想知道他們的狀態發生了變化的員工,我該如何在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM