2017-09-29 11 views
0

string.Equalsまたはstring.Compareを使用する方法はありますか?2つのnullまたは2つの空の文字列がそれぞれfalseまたは0以外の数値を返す方法はありますか?C#2つの文字列をカスタムルールと比較する

使用事例:

string.Equals(null, null) = false; 
string.Equals("", string.empty) = false; 

string.Compare(null, null) != 0; 
string.Compare("", string.empty) != 0; 
+2

あなたは説明できますか?物事が自分自身と同等でない比較操作は、例えばソートで使用される要件を満たしていません。 –

+0

@EricLippert null値と空値の両方が「不明」な値を表しているため、これを実行したいと考えています。私はちょうどもっとエレガントな方法があるかどうかを知りたいと思っていた。If(!String.IsEmptyOrNull(val1)&&!String.IsEmptyOrNull(val2)&& String.Equals(val1、val2)) } – Maderas

+0

たとえば、空の文字列がそれ自身より大きく、2つの空の文字列を含むリストに対してソートを行っているというルールがあるとします。このソートアルゴリズムは、このシナリオでは小さな項目の前に大きな項目が*常に*存在するため、ループ内の位置を永遠に入れ替えることができます。 –

答えて

1

あなたがやって試すことができないようにする前に:あなたはそのようなことをしたいと思う理由

!string.Equals(null, null) 
+0

私は知っているが、私はこのメソッドに渡すカスタムコンパレータを作成する方法があることを期待していた。それはちょうど "創造的な"思想でした。ありがとう。 – Maderas

+0

@Cliveでは、値は変数として渡されます。 – derloopkat