如何使用FindLast()查找元素的最后一次出现

时间:2014-10-13 14:47:12

标签: c# list

我想找到列表中最后一个元素,并且知道我必须使用FindLast()来做到这一点。但是,我不知道如何实现和使用此方法。

以下是我的代码:

// the list I need to check
orderedMetricsByNS = (List<Metric>) lmresponse.Metrics.OrderBy(metric => metric.Namespace);

foreach (Metric m in orderedMetricsByNS)
            {
                 // want to use the FindLast() here 
            }

如何检索此类指标的最后一次出现?感谢

2 个答案:

答案 0 :(得分:1)

您可以使用LINQ:

var last = orderedMetricByNS.LastOrDefault();

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.lastordefault%28v=vs.95%29.aspx

答案 1 :(得分:1)

什么是Predicate?您可以像这样使用它:

var item = orderedMetricsByNS.FindLast(m => /* your condition */);

或者如果你想找到最后一项使用Last方法

var item = orderedMetricsByNS.Last();

顺便说一下,您无法从IOrderedEnumerable<T>投射到List<T>,您的代码将失败,您需要使用ToList方法。

orderedMetricsByNS = lmresponse.Metrics.OrderBy(metric => metric.Namespace).ToList();