私は以下にリストされているように4つの文字列を持っています。文字の順序やコンマ後の間隔は異なりますが、。があると見なされますsame business value
。
- すべての文字列が同じであることを確認するにはどうすればよいですか(上記のビジネスシナリオに従って)?次のコードがありますが、カンマの後のスペースの場合は失敗します。
- (この目的のために)より良い方法は何
Enumerable.SequenceEqual
ですか?
注:「A、B」は「B、A、B、A、B」と同じと見なされます
注:私はで使用Visual Studio 2010
しています.Net Framework 4
コード
string firstString = "A,B,C";
string secondString = "C,A,B";
string thirdString = "A,B, C";
string fourthString = "C, A,B";
//Set 1 Test
List<string> firstList = new List<string>(firstString.Split(','));
List<string> secondLsit = new List<string>(secondString.Split(','));
bool isStringsSame = Enumerable.SequenceEqual(firstList.OrderBy(t => t), secondLsit.OrderBy(t => t));
Console.WriteLine(isStringsSame);
//Set 2 Test
List<string> thirdList = new List<string>(thirdString.Split(','));
List<string> fourthList = new List<string>(fourthString.Split(','));
bool isOtherStringsSame = Enumerable.SequenceEqual(thirdList.OrderBy(t => t), fourthList.OrderBy(t => t));
Console.WriteLine(isOtherStringsSame);
Console.ReadLine();
更新:
OrdianlIgnoreCase
大文字と小文字の区別を無視するため に使用する大文字と小文字を区別しないモードでHashSet<string>.Contains()メソッドを使用する方法
参照:
- .NETでコンマ区切りリストの文字列をチェックする最良の方法は?
- 順序を無視して、2つのList<T>オブジェクトが等しいかどうかを比較します
- IEnumerable <T> .Select()が2つのケースのうちの1つで機能するのはなぜですか?使用法から推測することはできません
- 一致する2つのコンマ区切りの文字列を比較するための最短のコードは何ですか?
- c#とlinqを使用して、分離された文字列を階層に分割します
- LINQを使用して2つの文字列間で一致する文字をカウントします
- Usinq Linqを使用して、セミコロンで区切られた文字列内のアイテムを選択しますか?
- いくつかのプロパティに従って、リスト内の2つ以上のオブジェクトが等しいかどうかを判別します