webForumDet fria alternativet

jämföra strängar absolut snabbast

.NET

5 svar · 433 visningar · startad av Nöff

Medlem sedan nov. 2003569 inlägg
Frågan#1

Vilket är det absolut snabbaste sättet att jämföra strängar?.

if(stringen==stringen2)

if(String.Compare(stringen,stringen2)==true)

if(String.CompareOrdinal(stringen,stringen2)==true)

if(String.Equals(stringen,stringen2)==true)

Ja, det finns ett otal varianter att jämföra på.. men vilket är det snabbaste sättet?.

Medlem sedan dec. 19996 721 inlägg
#2

String.Equals är den snabbaste metoden om man bara vill kolla om strängarna är lika, därefter ==. Compare-metoderna är mer avancerade eftersom de tar hänsyn till strängarnas alfabetiska ordning, den inställda "kulturen" etc.

OBS! Det finns ingen anledning att jämföra något med ett boolskt värde.

if(String.Equals(stringen,stringen2)==true)

bör skrivas

if(String.Equals(stringen,stringen2))

Medlem sedan apr. 20012 266 inlägg
#3

Flyttas från ASP.NET

Medlem sedan maj 20012 812 inlägg
#4

OBS! Det finns ingen anledning att jämföra något med ett boolskt värde.

if(String.Equals(stringen,stringen2)==true)

Inte programmeringsmässigt, men ur ren underhållningssynvinkel
samt enkelare förståelse av koden så är det bättre att ha med == true, även om det är underförstått.

- Magnus

Medlem sedan nov. 2003569 inlägg
#5

OBS! Det finns ingen anledning att jämföra något med ett boolskt värde.

Men myyyycket lättare att förstå koden :bire jag har a-l-l-t-i-d true med, även på datareaders:

while(reader()==true)

blir nästan så man kan läsa koden rakt av, while:a så länge readern returnerar true

Medlem sedan dec. 19996 721 inlägg
#6

Bara ni är medvetna om det så är det självklart OK, om ni tycker att det ökar läsbarheten. :)

Den kompilerade koden blir densamma.

264 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)