我有一个以数字结尾的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);
对于基本上一些字符串操作来说,这似乎很多工作。有一个更好的方法吗?
谢谢!
答案 0 :(得分:2)
如何
string maxBlobName = blobNames.OrderByDescending(x => int.Parse(x.Substring(x.LastIndexOf('_') + 1)))
.First();
这样你只需要迭代一次,而不是三次。