diff --git a/osu.Game.Rulesets.Mania/ManiaRuleset.cs b/osu.Game.Rulesets.Mania/ManiaRuleset.cs
index c38d6519bd..75a642924c 100644
--- a/osu.Game.Rulesets.Mania/ManiaRuleset.cs
+++ b/osu.Game.Rulesets.Mania/ManiaRuleset.cs
@@ -375,7 +375,7 @@ public override LocalisableString GetVariantName(int variant)
/// The that corresponds to .
private PlayfieldType getPlayfieldType(int variant)
{
- return (PlayfieldType)Enum.GetValues(typeof(PlayfieldType)).Cast().OrderByDescending(i => i).First(v => variant >= v);
+ return (PlayfieldType)Enum.GetValues(typeof(PlayfieldType)).Cast().OrderDescending().First(v => variant >= v);
}
protected override IEnumerable GetValidHitResults()
diff --git a/osu.Game.Rulesets.Mania/Scoring/ManiaScoreProcessor.cs b/osu.Game.Rulesets.Mania/Scoring/ManiaScoreProcessor.cs
index 1947d86a97..0444394d87 100644
--- a/osu.Game.Rulesets.Mania/Scoring/ManiaScoreProcessor.cs
+++ b/osu.Game.Rulesets.Mania/Scoring/ManiaScoreProcessor.cs
@@ -22,7 +22,7 @@ public ManiaScoreProcessor()
}
protected override IEnumerable EnumerateHitObjects(IBeatmap beatmap)
- => base.EnumerateHitObjects(beatmap).OrderBy(ho => ho, JudgementOrderComparer.DEFAULT);
+ => base.EnumerateHitObjects(beatmap).Order(JudgementOrderComparer.DEFAULT);
protected override double ComputeTotalScore(double comboProgress, double accuracyProgress, double bonusPortion)
{
diff --git a/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs b/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs
index 15b20a5572..4a6328010b 100644
--- a/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs
+++ b/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs
@@ -48,7 +48,7 @@ public override double DifficultyValue()
// These sections will not contribute to the difficulty.
var peaks = GetCurrentStrainPeaks().Where(p => p > 0);
- List strains = peaks.OrderByDescending(d => d).ToList();
+ List strains = peaks.OrderDescending().ToList();
// We are reducing the highest strains first to account for extreme difficulty spikes
for (int i = 0; i < Math.Min(strains.Count, ReducedSectionCount); i++)
@@ -59,7 +59,7 @@ public override double DifficultyValue()
// Difficulty is the weighted sum of the highest strains from every section.
// We're sorting from highest to lowest strain.
- foreach (double strain in strains.OrderByDescending(d => d))
+ foreach (double strain in strains.OrderDescending())
{
difficulty += strain * weight;
weight *= DecayWeight;
diff --git a/osu.Game.Rulesets.Taiko/Difficulty/Skills/Peaks.cs b/osu.Game.Rulesets.Taiko/Difficulty/Skills/Peaks.cs
index ec8e754c5c..91d8e93543 100644
--- a/osu.Game.Rulesets.Taiko/Difficulty/Skills/Peaks.cs
+++ b/osu.Game.Rulesets.Taiko/Difficulty/Skills/Peaks.cs
@@ -81,7 +81,7 @@ public override double DifficultyValue()
double difficulty = 0;
double weight = 1;
- foreach (double strain in peaks.OrderByDescending(d => d))
+ foreach (double strain in peaks.OrderDescending())
{
difficulty += strain * weight;
weight *= 0.9;
diff --git a/osu.Game.Tournament/IO/TournamentStorage.cs b/osu.Game.Tournament/IO/TournamentStorage.cs
index 7c5f3e44a7..48cd45fdd4 100644
--- a/osu.Game.Tournament/IO/TournamentStorage.cs
+++ b/osu.Game.Tournament/IO/TournamentStorage.cs
@@ -45,6 +45,6 @@ private void updateTournament(ValueChangedEvent newTournament)
Logger.Log("Changing tournament storage: " + GetFullPath(string.Empty));
}
- public IEnumerable ListTournaments() => AllTournaments.GetDirectories(string.Empty).OrderBy(directory => directory, StringComparer.CurrentCultureIgnoreCase);
+ public IEnumerable ListTournaments() => AllTournaments.GetDirectories(string.Empty).Order(StringComparer.CurrentCultureIgnoreCase);
}
}
diff --git a/osu.Game/Beatmaps/BeatmapImporter.cs b/osu.Game/Beatmaps/BeatmapImporter.cs
index 7bb52eef52..5ff3ab64b2 100644
--- a/osu.Game/Beatmaps/BeatmapImporter.cs
+++ b/osu.Game/Beatmaps/BeatmapImporter.cs
@@ -266,8 +266,8 @@ protected override bool CanReuseExisting(BeatmapSetInfo existing, BeatmapSetInfo
if (!base.CanReuseExisting(existing, import))
return false;
- var existingIds = existing.Beatmaps.Select(b => b.OnlineID).OrderBy(i => i);
- var importIds = import.Beatmaps.Select(b => b.OnlineID).OrderBy(i => i);
+ var existingIds = existing.Beatmaps.Select(b => b.OnlineID).Order();
+ var importIds = import.Beatmaps.Select(b => b.OnlineID).Order();
// force re-import if we are not in a sane state.
return existing.OnlineID == import.OnlineID && existingIds.SequenceEqual(importIds);
diff --git a/osu.Game/Collections/CollectionDropdown.cs b/osu.Game/Collections/CollectionDropdown.cs
index 249a0c35e7..15dd644073 100644
--- a/osu.Game/Collections/CollectionDropdown.cs
+++ b/osu.Game/Collections/CollectionDropdown.cs
@@ -74,7 +74,7 @@ private void collectionsChanged(IRealmCollection collections,
}
else
{
- foreach (int i in changes.DeletedIndices.OrderByDescending(i => i))
+ foreach (int i in changes.DeletedIndices.OrderDescending())
filters.RemoveAt(i + 1);
foreach (int i in changes.InsertedIndices)
diff --git a/osu.Game/Database/RealmArchiveModelImporter.cs b/osu.Game/Database/RealmArchiveModelImporter.cs
index 5383040eb4..bc4954c6ea 100644
--- a/osu.Game/Database/RealmArchiveModelImporter.cs
+++ b/osu.Game/Database/RealmArchiveModelImporter.cs
@@ -279,7 +279,7 @@ await Task.WhenAll(tasks.Select(async task =>
// note that this should really be checking filesizes on disk (of existing files) for some degree of sanity.
// or alternatively doing a faster hash check. either of these require database changes and reprocessing of existing files.
if (CanSkipImport(existing, item) &&
- getFilenames(existing.Files).SequenceEqual(getShortenedFilenames(archive).Select(p => p.shortened).OrderBy(f => f)) &&
+ getFilenames(existing.Files).SequenceEqual(getShortenedFilenames(archive).Select(p => p.shortened).Order()) &&
checkAllFilesExist(existing))
{
LogForModel(item, @$"Found existing (optimised) {HumanisedModelName} for {item} (ID {existing.ID}) – skipping import.");
@@ -437,7 +437,7 @@ private string computeHashFast(ArchiveReader reader)
{
MemoryStream hashable = new MemoryStream();
- foreach (string? file in reader.Filenames.Where(f => HashableFileTypes.Any(ext => f.EndsWith(ext, StringComparison.OrdinalIgnoreCase))).OrderBy(f => f))
+ foreach (string? file in reader.Filenames.Where(f => HashableFileTypes.Any(ext => f.EndsWith(ext, StringComparison.OrdinalIgnoreCase))).Order())
{
using (Stream s = reader.GetStream(file))
s.CopyTo(hashable);
diff --git a/osu.Game/Overlays/Music/PlaylistOverlay.cs b/osu.Game/Overlays/Music/PlaylistOverlay.cs
index 7784643163..6ecd0f51d3 100644
--- a/osu.Game/Overlays/Music/PlaylistOverlay.cs
+++ b/osu.Game/Overlays/Music/PlaylistOverlay.cs
@@ -122,7 +122,7 @@ private void beatmapsChanged(IRealmCollection sender, ChangeSet
foreach (int i in changes.InsertedIndices)
beatmapSets.Insert(i, sender[i].ToLive(realm));
- foreach (int i in changes.DeletedIndices.OrderByDescending(i => i))
+ foreach (int i in changes.DeletedIndices.OrderDescending())
beatmapSets.RemoveAt(i);
}
diff --git a/osu.Game/Overlays/Settings/Sections/Graphics/RendererSettings.cs b/osu.Game/Overlays/Settings/Sections/Graphics/RendererSettings.cs
index d4cef3f4d1..fc5dd34971 100644
--- a/osu.Game/Overlays/Settings/Sections/Graphics/RendererSettings.cs
+++ b/osu.Game/Overlays/Settings/Sections/Graphics/RendererSettings.cs
@@ -36,7 +36,7 @@ private void load(FrameworkConfigManager config, OsuConfigManager osuConfig, IDi
{
LabelText = GraphicsSettingsStrings.Renderer,
Current = renderer,
- Items = host.GetPreferredRenderersForCurrentPlatform().OrderBy(t => t).Where(t => t != RendererType.Vulkan),
+ Items = host.GetPreferredRenderersForCurrentPlatform().Order().Where(t => t != RendererType.Vulkan),
Keywords = new[] { @"compatibility", @"directx" },
},
// TODO: this needs to be a custom dropdown at some point
diff --git a/osu.Game/Rulesets/Difficulty/Skills/StrainSkill.cs b/osu.Game/Rulesets/Difficulty/Skills/StrainSkill.cs
index b43a272324..b07e8399c0 100644
--- a/osu.Game/Rulesets/Difficulty/Skills/StrainSkill.cs
+++ b/osu.Game/Rulesets/Difficulty/Skills/StrainSkill.cs
@@ -108,7 +108,7 @@ public override double DifficultyValue()
// Difficulty is the weighted sum of the highest strains from every section.
// We're sorting from highest to lowest strain.
- foreach (double strain in peaks.OrderByDescending(d => d))
+ foreach (double strain in peaks.OrderDescending())
{
difficulty += strain * weight;
weight *= DecayWeight;
diff --git a/osu.Game/Rulesets/Edit/Checks/CheckBreaks.cs b/osu.Game/Rulesets/Edit/Checks/CheckBreaks.cs
index 94369443c2..0842ff5453 100644
--- a/osu.Game/Rulesets/Edit/Checks/CheckBreaks.cs
+++ b/osu.Game/Rulesets/Edit/Checks/CheckBreaks.cs
@@ -31,8 +31,8 @@ public class CheckBreaks : ICheck
public IEnumerable Run(BeatmapVerifierContext context)
{
- var startTimes = context.Beatmap.HitObjects.Select(ho => ho.StartTime).OrderBy(x => x).ToList();
- var endTimes = context.Beatmap.HitObjects.Select(ho => ho.GetEndTime()).OrderBy(x => x).ToList();
+ var startTimes = context.Beatmap.HitObjects.Select(ho => ho.StartTime).Order().ToList();
+ var endTimes = context.Beatmap.HitObjects.Select(ho => ho.GetEndTime()).Order().ToList();
foreach (var breakPeriod in context.Beatmap.Breaks)
{
diff --git a/osu.Game/Rulesets/Mods/ModAdaptiveSpeed.cs b/osu.Game/Rulesets/Mods/ModAdaptiveSpeed.cs
index 77aa5cdc15..19554b6504 100644
--- a/osu.Game/Rulesets/Mods/ModAdaptiveSpeed.cs
+++ b/osu.Game/Rulesets/Mods/ModAdaptiveSpeed.cs
@@ -188,7 +188,7 @@ public void ApplyToDrawableHitObject(DrawableHitObject drawable)
public void ApplyToBeatmap(IBeatmap beatmap)
{
var hitObjects = getAllApplicableHitObjects(beatmap.HitObjects).ToList();
- var endTimes = hitObjects.Select(x => x.GetEndTime()).OrderBy(x => x).Distinct().ToList();
+ var endTimes = hitObjects.Select(x => x.GetEndTime()).Order().Distinct().ToList();
foreach (HitObject hitObject in hitObjects)
{
diff --git a/osu.Game/Rulesets/RealmRulesetStore.cs b/osu.Game/Rulesets/RealmRulesetStore.cs
index 456f6e399b..ba6f4583d1 100644
--- a/osu.Game/Rulesets/RealmRulesetStore.cs
+++ b/osu.Game/Rulesets/RealmRulesetStore.cs
@@ -107,7 +107,7 @@ private void prepareDetachedRulesets(RealmAccess realmAccess)
}
}
- availableRulesets.AddRange(detachedRulesets.OrderBy(r => r));
+ availableRulesets.AddRange(detachedRulesets.Order());
});
}
diff --git a/osu.Game/Screens/Edit/Compose/Components/BeatDivisorPresetCollection.cs b/osu.Game/Screens/Edit/Compose/Components/BeatDivisorPresetCollection.cs
index 56df0552cc..43ab47d2d7 100644
--- a/osu.Game/Screens/Edit/Compose/Components/BeatDivisorPresetCollection.cs
+++ b/osu.Game/Screens/Edit/Compose/Components/BeatDivisorPresetCollection.cs
@@ -35,7 +35,7 @@ public static BeatDivisorPresetCollection Custom(int maxDivisor)
presets.Add(maxDivisor / candidate);
}
- return new BeatDivisorPresetCollection(BeatDivisorType.Custom, presets.Distinct().OrderBy(d => d));
+ return new BeatDivisorPresetCollection(BeatDivisorType.Custom, presets.Distinct().Order());
}
}
}
diff --git a/osu.Game/Screens/Edit/Compose/Components/Timeline/DifficultyPointPiece.cs b/osu.Game/Screens/Edit/Compose/Components/Timeline/DifficultyPointPiece.cs
index ca1e9a5d9b..fc240c570b 100644
--- a/osu.Game/Screens/Edit/Compose/Components/Timeline/DifficultyPointPiece.cs
+++ b/osu.Game/Screens/Edit/Compose/Components/Timeline/DifficultyPointPiece.cs
@@ -169,7 +169,7 @@ private void updateInspectorText()
InspectorText.Clear();
- double[] sliderVelocities = EditorBeatmap.HitObjects.OfType().Select(sv => sv.SliderVelocityMultiplier).OrderBy(v => v).ToArray();
+ double[] sliderVelocities = EditorBeatmap.HitObjects.OfType().Select(sv => sv.SliderVelocityMultiplier).Order().ToArray();
AddHeader("Base velocity (from beatmap setup)");
AddValue($"{beatmapVelocity:#,0.00}x");