2012-03-28 14 views
8

linqクエリのWhere句でstring.compareを使用する正確な構文を理解するのに少し問題があります。以下は私がこれまで持っていたものです。linqクエリでstring.compareを使用するwhere

filteredApplications = AllApplications.Where(x => x.Name.Contains(string.Compare(x.Name, txtSearch.Text, StringComparison.OrdinalIgnoreCase))).ToList(); 

これは可能ですか、間違ったツリーを吠えますか?

ロンダ

+0

'String.Compare()'はintを返します。 – jrummell

+0

何をしようとしていますか?あなたは 'Contains'と' Compare'を使っています... – jrummell

答えて

11

AllApplications.Where(x => x.Name.ToUpperInvariant().Contains(txtSearch.Text.ToUpperInvariant()))).ToList(); 

平等をチェックしたい場合:

AllApplications.Where(x => string.Equals(x.Name, txtSearch.Text, StringComparison.OrdinalIgnoreCase)).ToList(); 

元のクエリでは、x.Namestring.Compareの結果が含まれているかどうかを確認していました。 string.Compare returns an integer以降、これをやろうとしていなかったと思います。 string.Compareは主にソート順の決定に使用されます。

0

あなたが平等で一致させるために探しているなら、私はあなたがEqualsを探していると信じて:あなたはNameは、検索テキストが含まれているかどうかを確認したい場合は

filteredApplications = AllApplications.Where(x => x.Name.Equals(txtSearch.Text, StringComparison.OrdinalIgnoreCase)).ToList(); 
関連する問題