LINQ ifadesini basitleştirme (IDE0120)

Özellik Değer
Kural Kimliği IDE0120
Başlık LINQ ifadesini basitleştirme
Kategori Stil
Alt Kategori Gereksiz kod kuralları (ifade düzeyi tercihleri)
Geçerli diller C# ve Visual Basic

Genel Bakış

Bu kural, aşırı karmaşık LINQ ifadelerine, özellikle de aşağıdaki yöntemlerden birini çağıran Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) ifadelere bayrak uygular:

Bu tür ifadeler, çağrısı kaldırılarak ve bunun yerine öğeleri filtrelemek için Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) bir koşul işlevi kabul eden , First()FirstOrDefault()Count()Last(), , LastOrDefault(), , SingleSingleOrDefault() veya aşırı yüklemesi Any()çağrılarak basitleştirilebilir.

Seçenekler

Bu kuralın ilişkili kod stili seçeneği yok.

Örnek

// Code with violations.
IEnumerable<string> words = new List<string> { "hello", "world", "!" };
var result = words.Where(x => x.Equals("hello")).Any();

// Fixed code.
IEnumerable<string> words = new List<string> { "hello", "world", "!" };
var result = words.Any(x => x.Equals("hello"));

Uyarıyı gizleme

Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza önişlemci yönergeleri ekleyin.

#pragma warning disable IDE0120
// The code that's violating the rule is on this line.
#pragma warning restore IDE0120

Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini none olarak ayarlayın.

[*.{cs,vb}]
dotnet_diagnostic.IDE0120.severity = none

Tüm kod stili kurallarını devre dışı bırakmak için, kategorinin önem derecesini Stylenone yapılandırma dosyasında olarak ayarlayın.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Daha fazla bilgi için bkz. Kod analizi uyarılarını gizleme.

Ayrıca bkz.