diff --git a/lib/PuppeteerSharp.Tests/PuppeteerSharp.Tests.csproj b/lib/PuppeteerSharp.Tests/PuppeteerSharp.Tests.csproj
index 965b76055..5c7974a66 100644
--- a/lib/PuppeteerSharp.Tests/PuppeteerSharp.Tests.csproj
+++ b/lib/PuppeteerSharp.Tests/PuppeteerSharp.Tests.csproj
@@ -18,7 +18,7 @@
-
+
diff --git a/lib/PuppeteerSharp/Binding.cs b/lib/PuppeteerSharp/Binding.cs
index 56aa0e1e2..8ecfa1382 100644
--- a/lib/PuppeteerSharp/Binding.cs
+++ b/lib/PuppeteerSharp/Binding.cs
@@ -136,7 +136,7 @@ await context.EvaluateFunctionAsync(
}
finally
{
- await Task.WhenAll(garbage.ToArray()).ConfigureAwait(false);
+ await Task.WhenAll(garbage).ConfigureAwait(false);
}
}
}
diff --git a/lib/PuppeteerSharp/BrowserData/Firefox.cs b/lib/PuppeteerSharp/BrowserData/Firefox.cs
index 956104fbe..8fd990d74 100644
--- a/lib/PuppeteerSharp/BrowserData/Firefox.cs
+++ b/lib/PuppeteerSharp/BrowserData/Firefox.cs
@@ -123,7 +123,7 @@ private static void SyncPreferences(Dictionary defaultPreference
var userPath = Path.Combine(tempUserDataDirectory, "user.js");
var lines = string.Join(
"\n",
- defaultPreferences.Select(i => $"user_pref({JsonSerializer.Serialize(i.Key)}, {JsonSerializer.Serialize(i.Value)});").ToArray());
+ defaultPreferences.Select(i => $"user_pref({JsonSerializer.Serialize(i.Key)}, {JsonSerializer.Serialize(i.Value)});"));
BackupFile(userPath);
BackupFile(prefsPath);
diff --git a/lib/PuppeteerSharp/Cdp/CdpBrowser.cs b/lib/PuppeteerSharp/Cdp/CdpBrowser.cs
index 32fe8165d..00f2d9cdd 100644
--- a/lib/PuppeteerSharp/Cdp/CdpBrowser.cs
+++ b/lib/PuppeteerSharp/Cdp/CdpBrowser.cs
@@ -143,15 +143,7 @@ public override async Task CreateBrowserContextAsync(BrowserCon
}
///
- public override IBrowserContext[] BrowserContexts()
- {
- var contexts = _contexts.Values.ToArray();
-
- var allContexts = new IBrowserContext[contexts.Length + 1];
- allContexts[0] = DefaultContext;
- contexts.CopyTo(allContexts, 1);
- return allContexts;
- }
+ public override IBrowserContext[] BrowserContexts() => [DefaultContext, .. _contexts.Values];
internal static async Task CreateAsync(
SupportedBrowser browserToCreate,
diff --git a/lib/PuppeteerSharp/Cdp/CdpCDPSession.cs b/lib/PuppeteerSharp/Cdp/CdpCDPSession.cs
index 476b5b946..5a722d055 100644
--- a/lib/PuppeteerSharp/Cdp/CdpCDPSession.cs
+++ b/lib/PuppeteerSharp/Cdp/CdpCDPSession.cs
@@ -149,7 +149,7 @@ internal override void Close(string closeReason)
CloseReason = closeReason;
IsClosed = true;
- foreach (var callback in _callbacks.Values.ToArray())
+ foreach (var callback in _callbacks.Values)
{
callback.TaskWrapper.TrySetException(new TargetClosedException(
$"Protocol error({callback.Method}): Target closed.",
diff --git a/lib/PuppeteerSharp/Cdp/Connection.cs b/lib/PuppeteerSharp/Cdp/Connection.cs
index a2f8d061b..c170113e8 100644
--- a/lib/PuppeteerSharp/Cdp/Connection.cs
+++ b/lib/PuppeteerSharp/Cdp/Connection.cs
@@ -208,14 +208,14 @@ internal void Close(string closeReason)
Transport.StopReading();
Disconnected?.Invoke(this, EventArgs.Empty);
- foreach (var session in _sessions.Values.ToArray())
+ foreach (var session in _sessions.Values)
{
session.Close(closeReason);
}
_sessions.Clear();
- foreach (var response in _callbacks.Values.ToArray())
+ foreach (var response in _callbacks.Values)
{
response.TaskWrapper.TrySetException(new TargetClosedException(
$"Protocol error({response.Method}): Target closed.",
diff --git a/lib/PuppeteerSharp/Cdp/FrameManager.cs b/lib/PuppeteerSharp/Cdp/FrameManager.cs
index a3ac719c1..cce6708ab 100644
--- a/lib/PuppeteerSharp/Cdp/FrameManager.cs
+++ b/lib/PuppeteerSharp/Cdp/FrameManager.cs
@@ -283,7 +283,7 @@ private void OnLifeCycleEvent(LifecycleEventResponse e)
private void OnExecutionContextsCleared(CDPSession session)
{
- foreach (var key in _contextIdToContext.Keys.ToArray())
+ foreach (var key in _contextIdToContext.Keys)
{
var context = _contextIdToContext[key];
if (context.Client != session)
diff --git a/lib/PuppeteerSharp/PageCoverage/CSSCoverage.cs b/lib/PuppeteerSharp/PageCoverage/CSSCoverage.cs
index b2294edc9..9f82edfe9 100755
--- a/lib/PuppeteerSharp/PageCoverage/CSSCoverage.cs
+++ b/lib/PuppeteerSharp/PageCoverage/CSSCoverage.cs
@@ -93,7 +93,7 @@ await Task.WhenAll(
var url = kv.Value.Url;
var text = kv.Value.Source;
styleSheetIdToCoverage.TryGetValue(styleSheetId, out var responseRanges);
- var ranges = Coverage.ConvertToDisjointRanges(responseRanges ?? new List());
+ var ranges = Coverage.ConvertToDisjointRanges(responseRanges ?? []);
coverage.Add(new CoverageEntry
{
Url = url,
diff --git a/lib/PuppeteerSharp/PageCoverage/Coverage.cs b/lib/PuppeteerSharp/PageCoverage/Coverage.cs
index 7ad84296e..2a18d90bd 100644
--- a/lib/PuppeteerSharp/PageCoverage/Coverage.cs
+++ b/lib/PuppeteerSharp/PageCoverage/Coverage.cs
@@ -30,7 +30,7 @@ public Task StartCSSCoverageAsync(CoverageStartOptions options = null)
///
public Task StopCSSCoverageAsync() => _cssCoverage.StopAsync();
- internal static CoverageEntryRange[] ConvertToDisjointRanges(List nestedRanges)
+ internal static CoverageEntryRange[] ConvertToDisjointRanges(IEnumerable nestedRanges)
{
var points = new List();
foreach (var range in nestedRanges)
diff --git a/lib/PuppeteerSharp/PageCoverage/JSCoverage.cs b/lib/PuppeteerSharp/PageCoverage/JSCoverage.cs
index e0983a833..3c2e099c2 100755
--- a/lib/PuppeteerSharp/PageCoverage/JSCoverage.cs
+++ b/lib/PuppeteerSharp/PageCoverage/JSCoverage.cs
@@ -93,7 +93,7 @@ await Task.WhenAll(
continue;
}
- var flattenRanges = entry.Functions.SelectMany(f => f.Ranges).ToList();
+ var flattenRanges = entry.Functions.SelectMany(f => f.Ranges);
var ranges = Coverage.ConvertToDisjointRanges(flattenRanges);
coverage.Add(new JSCoverageEntry
{
diff --git a/lib/PuppeteerSharp/QueryHandlers/CustomQuerySelectorRegistry.cs b/lib/PuppeteerSharp/QueryHandlers/CustomQuerySelectorRegistry.cs
index 0325b0f57..4773f7040 100644
--- a/lib/PuppeteerSharp/QueryHandlers/CustomQuerySelectorRegistry.cs
+++ b/lib/PuppeteerSharp/QueryHandlers/CustomQuerySelectorRegistry.cs
@@ -84,6 +84,6 @@ internal void ClearCustomQueryHandlers()
}
}
- private IEnumerable CustomQueryHandlerNames() => _queryHandlers.Keys.ToArray();
+ private IEnumerable CustomQueryHandlerNames() => _queryHandlers.Keys;
}
}
diff --git a/lib/PuppeteerSharp/WaitTask.cs b/lib/PuppeteerSharp/WaitTask.cs
index 303b0419e..3fb7b7812 100644
--- a/lib/PuppeteerSharp/WaitTask.cs
+++ b/lib/PuppeteerSharp/WaitTask.cs
@@ -111,11 +111,11 @@ internal async Task RerunAsync()
return fun(...args);
});
}",
- new object[]
- {
+ [
new LazyArg(async context => await context.GetPuppeteerUtilAsync().ConfigureAwait(false)),
_fn,
- }.Concat(_args).ToArray()).ConfigureAwait(false);
+ .._args
+ ]).ConfigureAwait(false);
}
else
{
@@ -127,12 +127,12 @@ internal async Task RerunAsync()
return fun(...args);
}, root || document);
}",
- new object[]
- {
+ [
new LazyArg(async context => await context.GetPuppeteerUtilAsync().ConfigureAwait(false)),
_root,
_fn,
- }.Concat(_args).ToArray()).ConfigureAwait(false);
+ .._args
+ ]).ConfigureAwait(false);
}
// Note that FrameWaitForFunctionTests listen for this particular message to orchestrate the test execution