2016-03-30 82 views
0

我有一個以數字結尾的blob名稱列表,即「blob_0」,「blob_1」,「blob_2」在字符串名稱以數字結尾的列表中查找項目?

我想查找以最大數字結尾的名稱。也就是說,在上面的例子中,blob_2。這裏是我現在的代碼:

 private string GetTailEndBlob(List<string> blobNames, CloudBlobContainer container) 
    { 
     List<int> blobNumbers = blobNames.ConvertAll(x => int.Parse(x.Substring(x.LastIndexOf('_') + 1))); 
     var maxBlobNumber = blobNumbers.Max(); 
     var maxBlobName = blobNames.Where(x => x.Contains("_" + maxBlobNumber)).FirstOrDefault(); 
     var blob = container.GetAppendBlobReference(maxBlobName); 

這對於基本上是一些字符串操作來說好像很多工作。有一個更好的方法嗎?

謝謝!

回答

2

如何只

string maxBlobName = blobNames.OrderByDescending(x => int.Parse(x.Substring(x.LastIndexOf('_') + 1))) 
           .First(); 

這樣,你只遍歷集合一次,而不是三次。

+0

這絕對是我在找的東西。謝謝! – Kat

相關問題