Skip to content

Commit ddd48a9

Browse files
committed
Avoid using Any() in loop
1 parent 2267abe commit ddd48a9

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,16 +108,20 @@ private async Task UpdateRecentsList(NotifyCollectionChangedEventArgs e)
108108
default:
109109
{
110110
var recentFiles = App.RecentItemsManager.RecentFiles; // already sorted, add all in order
111-
foreach (RecentItem elem in recentItemsCollection.ToList())
111+
int idx = 0;
112+
for (; idx < recentFiles.Count; idx++)
112113
{
113-
if (!recentFiles.Any(x => x.Equals(elem)))
114-
{
115-
recentItemsCollection.Remove(elem);
116-
}
114+
if (idx >= recentItemsCollection.Count || !recentFiles[idx].Equals(recentItemsCollection[idx]))
115+
await AddItemToRecentListAsync(recentFiles[idx], idx);
116+
else
117+
break;
117118
}
118-
for (int i = 0; i < recentFiles.Count; i++)
119+
while (idx < recentItemsCollection.Count)
119120
{
120-
await AddItemToRecentListAsync(recentFiles[i], i);
121+
if (idx >= recentFiles.Count || !recentFiles[idx].Equals(recentItemsCollection[idx]))
122+
recentItemsCollection.RemoveAt(idx);
123+
else
124+
idx++;
121125
}
122126
break;
123127
}

0 commit comments

Comments
 (0)