diff --git a/ChangeLog.md b/ChangeLog.md index 87731d8d20..3735a8f14f 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - [CLI] Bump Roslyn to 4.9.2 ([PR](https://github.com/dotnet/roslynator/pull/1441)) +- Convert `Last()` to `[]` ([RCS1246](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1246)) ([PR](https://github.com/dotnet/roslynator/pull/1436)) ### Fixed diff --git a/src/Analyzers.CodeFixes/CSharp/CodeFixes/OptimizeLinqMethodCallCodeFixProvider.cs b/src/Analyzers.CodeFixes/CSharp/CodeFixes/OptimizeLinqMethodCallCodeFixProvider.cs index e93a85e216..87c90cec4d 100644 --- a/src/Analyzers.CodeFixes/CSharp/CodeFixes/OptimizeLinqMethodCallCodeFixProvider.cs +++ b/src/Analyzers.CodeFixes/CSharp/CodeFixes/OptimizeLinqMethodCallCodeFixProvider.cs @@ -257,6 +257,16 @@ public override async Task RegisterCodeFixesAsync(CodeFixContext context) ct => UseElementAccessInsteadOfEnumerableMethodRefactoring.UseElementAccessInsteadOfElementAtAsync(document, invocation, ct), GetEquivalenceKey(diagnostic, "UseElementAccessInsteadOfElementAt")); + context.RegisterCodeFix(codeAction, diagnostic); + return; + } + case "Last": + { + CodeAction codeAction = CodeAction.Create( + "Use [] instead of calling 'Last'", + ct => UseElementAccessInsteadOfEnumerableMethodRefactoring.UseElementAccessInsteadOfLastAsync(document, invocation, ct), + GetEquivalenceKey(diagnostic, "UseElementAccessInsteadOfLast")); + context.RegisterCodeFix(codeAction, diagnostic); return; } diff --git a/src/Analyzers.xml b/src/Analyzers.xml index 3f23b872b1..e098e4b9fc 100644 --- a/src/Analyzers.xml +++ b/src/Analyzers.xml @@ -7277,6 +7277,7 @@ public class C Use element access Info true + 8.0 for [^1] @@ -7286,6 +7287,10 @@ public class C + + + +