我有一个 Breadcrumb 类型的 IList,它只是一个具有 NavigationTitle、NavigationUrl 和 IsCurrent 属性的轻量级类。它缓存在网络服务器上。我有一个方法可以构建当前的面包屑跟踪,直到第一个将 IsCurrent 设置为 true 的面包屑......使用下面的代码。它非常丑陋,绝对是一个快速的垃圾袋威利解决方案,但我很好奇,这可以很容易地重构为 LINQ 吗?
IList<Breadcrumb> crumbs = new List<Breadcrumb>();
bool foundCurrent = false;
for (int a = 0; a < cachedCrumbs.Count; a++)
{
crumbs.Add(crumbs[a]);
if (foundCurrent)
{
break;
}
foundCurrent = (crumbs[a + 1] != null && ((Breadcrumb)crumbs[a + 1]).IsCurrent);
}