String.IsNullOrEmptyと"".length>0それはもっと効率的です
5037 ワード
今日DevTopicsのブログを見ていると、Stringを紹介するエッセイが見つかりました.String変数が空であるかどうかを判断する方法と属性の比較で、string変数's'をあげます.次の式はもっと速いですか.
2つ目を当てたら正しいStringよりもIsNullOrEmpty法は15%速いが、これも百万分の1秒で測定されている.ここでは2つの方法を比較する簡単な例があります.
一般的に私はstring a=stringと定義するのが好きです.Empty;nullかどうかを判断する必要はありません.
1. String.IsNullOrEmpty( s )
2. s == null || s.Length == 0
2つ目を当てたら正しいStringよりもIsNullOrEmpty法は15%速いが、これも百万分の1秒で測定されている.ここでは2つの方法を比較する簡単な例があります.
01
using
System;
02
03
namespace
StringNullEmpty
04
{
05
class
Program
06
{
07
static
void
Main(
string
[] args )
08
{
09
long
loop = 100000000;
10
string
s =
null
;
11
long
option = 0;
12
long
empties1 = 0;
13
long
empties2 = 0;
14
15
DateTime time1 = DateTime.Now;
16
17
for
(
long
i = 0; i < loop; i++)
18
{
19
option = i % 4;
20
switch
(option)
21
{
22
case
0:
23
s =
null
;
24
break
;
25
case
1:
26
s = String.Empty;
27
break
;
28
case
2:
29
s =
"H"
;
30
break
;
31
case
3:
32
s =
"HI"
;
33
break
;
34
}
35
if
(String.IsNullOrEmpty( s ))
36
empties1++;
37
}
38
39
DateTime time2 = DateTime.Now;
40
41
for
(
long
i = 0; i < loop; i++)
42
{
43
option = i % 4;
44
switch
(option)
45
{
46
case
0:
47
s =
null
;
48
break
;
49
case
1:
50
s = String.Empty;
51
break
;
52
case
2:
53
s =
"H"
;
54
break
;
55
case
3:
56
s =
"HI"
;
57
break
;
58
}
59
if
(s ==
null
|| s.Length == 0)
60
empties2++;
61
}
62
63
DateTime time3 = DateTime.Now;
64
65
TimeSpan span1 = time2.Subtract( time1 );
66
TimeSpan span2 = time3.Subtract( time2 );
67
Console.WriteLine(
"(String.IsNullOrEmpty( s )): Time={0} Empties={1}"
,
68
span1, empties1 );
69
Console.WriteLine(
"(s == null || s.Length == 0): Time={0} Empties={1}"
,
70
span2, empties2 );
71
Console.ReadLine();
72
}
73
}
74
}
一般的に私はstring a=stringと定義するのが好きです.Empty;nullかどうかを判断する必要はありません.