我管理一个呼叫中心。我正在尝试将未应答的呼叫添加到池中。比较两个列表
我有两个列表,我从一个表中获取这些列表,因为我的一些属性为空,而其中一些不为空。
空值表示业务代表没有选择,非空值表示业务代表接收到呼叫,或者稍后调用错过的客户端。
容易的部分是从表中获取空值并将它们添加到池中。最难的部分是找出代理是否在将未接来电添加到游泳池之前回叫。
请参阅下面的示例。在示例中,我想从“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 –