查找列表中的项目,字符串名称以最大数字结尾?

时间:2016-03-30 15:19:19

标签: c# string linq list

我有一个以数字结尾的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);

对于基本上一些字符串操作来说,这似乎很多工作。有一个更好的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

如何

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

这样你只需要迭代一次,而不是三次。