2012-03-28 15 views
8

Bir linq sorgusunun Where yan tümcesinde string.compare işlevini kullanmak için tam sözdizimini bulmakta biraz sorun yaşıyorum. Şimdiye kadar sahip olduğum aşağıda.Bir linq sorgusunda string.compare deyimiyle

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

Bu mümkün mü, yoksa yanlış bir ağaç havlıyor muyum?

Rhonda

+0

'String.Compare()' bir int döndürür. – jrummell

+0

Ne yapmaya çalışıyorsun? 'Contains' ve' Compare' kullanıyorsunuz ... – jrummell

cevap

11

Eğer Name arama metni içeren olmadığını kontrol etmek istiyorsanız:

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

Eğer eşitlik kontrol etmek istiyorsanız:

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

Orijinal sorgunuzda, x.Name'un string.Compare sonucunu içerip içermediğini kontrol ediyordunuz. Bunu yapmaya çalışmıyorum, string.Compare returns an integer'dan beri. Öncelikle sıralama düzenini belirlemek için string.Compare kullanılır.

0

Sana eşitlik ile eşleşecek şekilde arıyorsanız eğer Equals aradığınız inanıyoruz:

filteredApplications = AllApplications.Where(x => x.Name.Equals(txtSearch.Text, StringComparison.OrdinalIgnoreCase)).ToList(); 
İlgili konular