Count of System.Collections.Generic.List


ViewBag.EquipmentList = myInventoryEntities.p_Configurable_Equipment_Request_Select(Address_ID, false).Select(c => new { Value = c.Quantity + " " + c.Device_Name + " (s)", ID = c.Device_ID.ToString() }).ToList();

在剃须刀中,我想做以下

@ViewBag.EquipmentList.Count

但计数总是== 1

我知道我可以在foreach中迭代,但宁愿采用更直接的方法。

也许我在概念上脱离了?

编辑:好吧,现在看来您已经过去了Count没有执行:

但计数总是== 1

听起来您总是在列出一个列表中,恰好是一个条目。如果这是出乎意料的,则应该查看为什么您只需获得一个条目 - 从调试代码开始。..这听起来根本不像剃须刀问题。


如果您的值为确实是 a List<T>对于某些T,我相信应该没关系。表达式ViewBag.EquipmentList.Count将在每个点进行动态评估。

换句话说,如果您真的,真的使用显示的分配代码,应该没关系。

但是,如果值只是不公开 Count属性的IEnumerable<T>的某种实现,那么您需要使用Enumerable.Count()扩展方法 - 并且您无法使用正常带有动态键入的"扩展方法语法"。一个简单的修复是使用:

Enumerable.Count(ViewBag.EquipmentList)

...仍将使用动态键入参数Enumerable.Count,但不必找到Count()方法作为扩展方法。

另外,请确保您的值确实是List<T>。如果实际上是一个数组,则应该能够更改代码以使用Length属性。

@ViewBag.EquipmentListNI.Count()

相关内容

最新更新