我管理一個呼叫中心。我正在嘗試將未應答的呼叫添加到池中。比較兩個列表
我有兩個列表,我從一個表中獲取這些列表,因爲我的一些屬性爲空,而其中一些不爲空。
空值表示業務代表沒有選擇,非空值表示業務代表接收到呼叫,或者稍後調用錯過的客戶端。
容易的部分是從表中獲取空值並將它們添加到池中。最難的部分是找出代理是否在將未接來電添加到游泳池之前回叫。
請參閱下面的示例。在示例中,我想從「abc」列表中刪除def
列表中AgentAnswerTime不爲空的項目。
List<UnansweredCallList> abc =
{ PhoneNumber = "123123", AgentAnswerTime = "null", CallTime = "12:30:59" },
{ PhoneNumber = "321321", AgentAnswerTime = "null", CallTime = "12:54:50" }
List<AnsweredCallsList> def =
{ PhoneNumber = "123123", AgentAnswerTime = "10272015 12:31:00", CallTime = "12:30:59" },
{ PhoneNumber = "321321", AgentAnswerTime = "null", CallTime = "12:54:50" }
我想要這個結果。
List<UnansweredCallList> abc =
{ PhoneNumber = "321321", AgentAnswerTime = "null", CallTime = "12:54:50" }
我試過linq Except
。
實際代碼:
var query = (
from c in db.calls
where c.PhoneNO.Length >= 9 && c.AGENT_Answer_Time == null && c.ClientNO != null && c.Call_Time > start_date && c.Call_Time < end_date
select new
{
c.PhoneNO,
c.Call_Time,
c.AGENT_Answer_Time,
c.ClientNO,
c.ROBOP
}).ToList();
var query = (
from c in db.calls
where c.PhoneNO.Length >= 9 && c.AGENT_Answer_Time != null && c.ClientNO != null && c.Call_Time > start_date && c.Call_Time < end_date
select new
{
c.PhoneNO,
c.Call_Time,
c.AGENT_Answer_Time,
c.ClientNO,
c.ROBOP
}).ToList();
顯示代碼你試過了。 Linq除了是要走的路,你需要一個自定義的比較器 – pm100
當兩個列表來自一個表時,這意味着只有來自該表的一個查詢就可以得到結果。 –
可以舉例請Martin Staufcik –