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()。非常感谢!这正是我想要的:)如果时间允许的话,我会把这个作为公认的答案加上。