我有一個呼叫中心應用程序,它將一堆其他數據中的呼叫顯示給我們的分析師和經理。我正在嘗試顯示隊列中接下來的三個人接聽電話。我能夠將下面的代碼放在一起,並將max3作爲項目源引用到列表框中,但實際上並未顯示下一個人的名稱。當您在max3上添加一個斷點時,它會顯示下一個三個代理,但它也會顯示所有數據,隊列中的時間,分機號碼等等。我需要知道如何只顯示他們的名字。需要幫助從列表中拉出某些數據
List<NewAgent> newAgentList = new List<NewAgent>();
List<Tuple<String, TimeSpan>> availInItems = new List<Tuple<string, TimeSpan>>();
foreach (var item in e.CmsData.Agents)
{
NewAgent newAgents = new NewAgent();
newAgents.AgentName = item.AgName;
newAgents.AgentExtension = item.Extension;
newAgents.AgentDateTimeChange = ConvertedDateTimeUpdated;
newAgents.AuxReasons = item.AuxReasonDescription;
newAgents.LoginIdentifier = item.LoginId;
newAgents.AgentState = item.WorkModeDirectionDescription;
var timeSpanSince = DateTime.Now - item.DateTimeUpdated;
newAgents.AgentDateTimeStateChange = timeSpanSince;
newAgentList.Add(newAgents);
if (item.WorkModeDirectionDescription == "AVAIL-IN")
{
availInItems.Add(Tuple.Create(newAgents.AgentName, timeSpanSince));
}
availInItems.Sort((t1, t2) => t1.Item2.CompareTo(t2.Item2));
}
上面的代碼後發生:
var availInAgents = newAgentList
.Where(ag => ag.AgentState == "AVAILIN") .ToList();
availInAgents.Sort((t1, t2) =>
t1.AgentDateTimeStateChange.CompareTo(t2.AgentDateTimeStateChange));
var minTimeSpanAgent = availInAgents.FirstOrDefault();
var maxTimeSpanAgent = availInAgents.LastOrDefault();
var min3 = availInAgents.Take(3).ToList();
var max3 = availInAgents.Skip(availInAgents.Count - 3);
max3.Reverse();
這是我的問題的存在,它顯示在下面的屏幕截圖的信息。我只需要AgentName就可以了,我不知道如何只訪問那條信息。請協助。
nextInLine.itemsource = max3.ToString();
所以這工作。任何你可以幫助補償空值的機會。當我使用選擇選項有時會拋出錯誤,並說對象引用未設置爲對象的實例。這就是爲什麼我沒有這樣做的開始。 – firehotguitar88
@ firehotguitar88 absolutley,請參閱我的更新。 –
因此,修復了空引用錯誤,現在它沒有收到錯誤,我注意到它正在垂直顯示代理名稱每個單元格的一個字母。不要以爲你有一個簡單的解決方案。當我使用文本框而不是列表框時,它正確顯示名稱,但只顯示一個名稱。 – firehotguitar88