C# 从字典C获取值的计数#
我有一个C# 从字典C获取值的计数#,c#,debugging,for-loop,dictionary,C#,Debugging,For Loop,Dictionary,我有一个字典,它以ID作为键,列表作为值。我想知道列表中有多少个列表。当我在调试时查询它时,它似乎给出了正确的值,但当我尝试访问该数据时,它只给出1而不是2的计数。我肯定这是我错过的东西,但我无法确定 下面是我通过调试检查时的计数: 当我尝试访问2的计数时,它如下所示: 整个方法是: public static List<string> getStatisticsCSVHeaders(List<Items> itemList, Dictionary<int, L
字典
,它以ID作为键,列表作为值。我想知道列表中有多少个列表。当我在调试时查询它时,它似乎给出了正确的值,但当我尝试访问该数据时,它只给出1而不是2的计数。我肯定这是我错过的东西,但我无法确定
下面是我通过调试检查时的计数:
当我尝试访问2的计数时,它如下所示:
整个方法是:
public static List<string> getStatisticsCSVHeaders(List<Items> itemList, Dictionary<int, List<List<Statistic>>> availableStats)
{
List<string> topRow = new List<string>();
for (int i = 0; i < availableStats.Values.Count; i++)
{
topRow.Add("Phase " + (i+1));
for (int k = 0; k < itemList.Count; k++)
topRow.Add(getMetricHeader(itemList[k], true));
}
return topRow;
}
公共静态列表GetStatisticsSVHeaders(列表项列表,字典可用列表)
{
List topRow=新列表();
对于(int i=0;i
我希望将列表中的列表数作为行I
的计数器
编辑:
我应该提到我已经尝试了
availableStats.Values[0]。Count
,但这不会编译。调试器显示字典中只有一个条目,该条目是一个包含两个元素的列表。因为您的代码对字典中的项进行计数,所以得到1
要获取该词典中所有列表中所有项目的编号,请尝试LINQ和Sum
:
availableStats.Values.Sum(x => x.Count)
在您的问题中,因为值包含一个列表,所以它可能包含一个空值,所以有必要对值进行空检查,否则您可能会在LINQ查询中得到错误
var totalCount = availableStats.Values.Sum(x => x==null? 0 : x.Count);
还有一种方法可以获得相同的结果,如下所示:
var totalCount = availableStats.Sum(x => x.Value==null? 0 : x.Value.Count);
您是否尝试过
foreach(dictionary.Value中的var list){/..}
为什么没有availableStats.Count()?@Prashant或者availableStats.Value.Count()
?字典上没有Value.Count()。非常感谢!这正是我想要的:)如果时间允许的话,我会把这个作为公认的答案加上。