I et inbound callcenter, hvor identiteten på den, der ringer ind, skal bekræftes, kan kontrollen nu foregå i telefonkøen. Det understøtter fem centrale KPI'er for callcentre.
Nej, hvis alle kommer med såp er det fordi at der er et eller andet galt med antagelsen om hvad der er i Line1 på det tidspunkt du sammenligner den med cpr.
Line1, Line2, Line3???... hvad er der i hver? Kontinuerlige kald til split og derefter direkte tilgåen arrayet er både performance synk samt uoverskeuelig... Hvorfor ikke List<string> istedet for ArraýList? (er det .NET 1.1)...
Jeg går ud fra at de forskellige linier læses ind fra et eller andet sted?... du bør kraftigt overveje (eller jeg vil faktisk sige du bør gøre det!)... at inlægge noget foretnigs logik og minimum et "Skytte" object... ala:
public class Skytte { private string navn; private string klub; private string klasse; private string cpr;
public string Navn { get { return this.navn; } set { this.navn = value; } }
public string Klub { get { return this.navn; } set { this.navn = value; } }
public string Klasse { get { return this.navn; } set { this.navn = value; } }
public string Cpr { get { return this.navn; } set { this.navn = value; } }
//Gennering af listen ud fra en komma sepereret fil eller et listview? eller andet???? public List<Skytte> GetAll() { //... Reader setup ect. string line = string.Empty; List<Skytte> skytter = new List<Skytte>(); while ((line = SR.ReadLine()) != null) { skytter.Add( Skytte.CreateFromLine( line ) ); } return skytter; }
(Senere hen er klub og klasse gode potentielle klasser også) (fortsætter lige senere, da jeg skal til kursus nu)
Hvis du så også benytter en List<Person> i stedet for ArrayList, kunne din ændrede kode se sådan her ud:
public static List<Person> GetALLskytterNOTin(string cpr) { using (MyReader SR = new MyReader(GlobalVariables.Instance.sti.ToString() + GlobalVariables.Instance.skytte.ToString())) { List<Person> gsnin = new List<Person>();
string line; while ((line = SR.ReadLine()) != null) { Person person = new Person(line); if (person.cpr != cpr) { gsnin.Add(person); } }
der er cprrn fra min txtfil . skal sortere dem fra jeg har listet i en anden list. men problemet er jo lidt at når den så søger i gennem 2. gang så har den jo "glemt" at den har søgt på det første cprn også tager den , den jo med igen :-(
Du bliver nødt til at lave en liste over dem som ikke skal med. Den bliver du nødt til at sende til den funktion som skal vise alle de andre - det skal du gøre efter det princip jeg har demonstreret i 27/11-2007 09:03:50.
Det er den måde du gør det på hvis ændringerne i din nuværende kode skal holdes til et minimum.
Du bliver desværre nødt til at smide noget af din nuværende kode helt væk - du kan ikke bare blive ved med at rette på den hvis grundtanken bag koden er forkert.
Hvis du ønsker en list hvorfra at nogle (ikke bare et enkelt) cpr-nummer er fjernet. Så bliver du først nødt til at lave en liste over alle dem som skal fjernes. Denne liste skal så sendes til den funktuion som giver dig de resterende cprnumre. Det er det princip jeg har vist i 27/11-2007 09:03:50.
1) Vælg nogle mere sigende navne for dine variable. Hvis "Line1" i virkeligheden er et cpr-nummer, hvad så med simpelthen at kalde den for "cpr"?
2) Opret en Person/Skytte klasse efter principperne angivet i 27/11-2007 08:28:29 og 27/11-2007 08:33:23.
3) Brug List<...> i stedet for ArrayList: List<Person> eller List<string>. Det performer bedre og din kode bliver nemmere at læse. Du behøver ikke at besvære dig mere med typecasts.
4) I din GetALLskytterNOTin() funktion læser du filen fra disken en gang for hvert cpr-nummer du ønsker at frasortere. Dette er ikke specielt effektivt og det slider tilmed unødigt på din disk. I stedet for at gøre det på den måde at du simpelthen loader filen ved programmets start (f.eks. ind i en List<Person> liste) - så kan du efterfølgende arbejde med denne liste uden at skulle ned at hente filen igen og igen.
Men, Klub vil givet vis være en senere kandidat for dig som desideret klasse, en klub er jo meget mere end bare et navn, Det er en addresse, og eventuelt så har en klub sine tilhørende skytter lagret.
Klasse er også en potentiel kandidat, som klasse og eller enum, enum kan gå i og med at klasserne hvertfald ikke ændrede sig i al den tid jeg selv var skytte. (var lige fra jeg var Børne skytte (BK3-1 og hele vejen op til Voksen klasserne).
Yderligere så ville en Person klasse ved siden af det hele slet ikke være dumt, da der vil være nogle ting som er person relevandt, mens andre er skytte relevant. Så ville en skytte jo så se ud ala:
public class Skytte { private Person person; private Klub klub; private Klasse klasse; }
og så:
public class Klub { private string navn; //Addresse osv kunne være interessant. //evt. vende tilhørsfoholdet om således at Klub har en: //List<Skytte> skytter; //List<Person> medlemmer; <- hvis man ønsker at modelere folk som ikke er skytter // ind men som deltager i klub ting. }
public class Person { private string navn; private string cpr; //fornavn/efternavn adskildelse, addresse, tlf, indendørs/udendørs gennemsnit mm?. //15m, 50m, 100m, 200m, pistol?. }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.