メソッド ListBlobs は、そのコンテナー内の BLOB を遅延して取得します。そのため、リストをループする (または ToList やその他のメソッドでオブジェクトを具体化する) まで実行されない、そのメソッドに対するクエリを作成できます。
いくつかの例で物事がより明確になります。Azure ストレージ アカウント内のコンテナーへの参照を取得する方法がわからない場合は、このチュートリアルをお勧めします。
最終更新日で並べ替え、ページ番号 2 を取得 (1 ページあたり 10 BLOB):
blobContainer.ListBlobs().OfType<CloudBlob>()
.OrderByDescending(b=>b.Properties.LastModified).Skip(10).Take(10);
特定の種類のファイルを取得します。これは、アップロード時に ContentType を設定している場合に機能します (これを行うことを強くお勧めします)。
blobContainer.ListBlobs().OfType<CloudBlob>()
.Where(b=>b.Properties.ContentType.StartsWith("image"));
.jpg ファイルを取得し、ファイル名に拡張子を設定すると仮定して、ファイル サイズで並べ替えます。
blobContainer.ListBlobs().OfType<CloudBlob>()
.Where(b=>b.Name.EndsWith(".jpg")).OrderByDescending(b=>b.Properties.Length);
最後に、次のように指示するまで、クエリは実行されません。
var blobs = blobContainer.ListBlobs().OfType<CloudBlob>()
.Where(b=>b.Properties.ContentType.StartsWith("image"));
foreach(var b in blobs) //This line will call the service,
//execute the query against it and
//return the desired files
{
// do something with each file. Variable b is of type CloudBlob
}