Frozen collections
Frozen collections in .NET are special types of collections. Collections like lists, dictionaries, arrays, etc. The frozen collections can't be changed when the data has been set. We call this "immutable". This means you can look at the data inside, but you can't change the data after it's frozen.
They are really fast because your application knows the data won't change. And because of that it can prevent accidental modifications, making your application do things you don't want it to be doing.
FrozenSet<Product> frozenProducts = ProductList.Products.ToFrozenSet();
frozenProducts.Single(x => x.Title == "Meatballs").Stock = 23;
foreach (Product product in products.Where(x => x.Stock > 10))
Console.WriteLine($"{product.Title} ({product.Stock})");