如何在C#中获取字典值集合的计数

卡尔·韦斯

我正在尝试获取字典的值集合的计数,其中集合项的字段与集合中的键以及类型匹配。

所以我的收藏看起来像这样,注意对象已初始化,这只是伪代码:

var results = Dictionary<string, List<CourseEnrollmentsByStudentSQLResult>();

现在,CourseEnrollmentsByStudentSQLResult是一个数据传输对象,它映射到我的查询返回的行。

public class CourseEnrollmentsByStudentSQLResult
{
    public int StudentID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string College { get; set; }
    public int CollegeId { get; set; }
    public string Prefix { get; set; }
    public string CourseNumber { get; set; }
    public string Course { get; set; }
    public int CourseId { get; set; } 
    public string Program { get; set; }
    public string Term { get; set; }
    public string Status { get; set; }
    public List<StudentCoursesSQLResult> Courses { get; set; }
}

您会注意到,我的CourseEnrollmentsByStudentSQLResult类也有一个StudentCoursesSQLResult对象的集合这是我要计算的列表,基于两个条件。

首先,该课程(即字典中的字符串KEY)与StudentCoursesSQLResult的课程匹配,然后我需要对StudentCoursesSQLResult .Type进行过滤

这是StudentCoursesSQLResult类:

public class StudentCoursesSQLResult
{
    public int StudentID { get; set; }
    public int Position { get; set; }
    public string Prefix { get; set; }
    public string CourseNumber { get; set; }
    public string Course { get; set; }
    public string Type { get; set; }
}

现在,要获取计数,我要遍历字典并为每个键输出标题,这是我尝试输出字典值集合的计数的地方。

    foreach(var result in results) {
       <span class="label label-default label-fat">
          @result.Value.SelectMany(r => r.Courses).Count(c => c.Course == result.Key && c.Type == "required")
       </span>
    }

但是由于某种原因,当我知道不应该返回零时,它返回零。

有人能指出我正确的方向吗?到目前为止,我在网上找到的所有内容都说可以使用SelectMany,但是我没有任何运气。

这是该词典的值集合的一门课程的调试输出的屏幕截图,其中“类型”为“必需”。

在此处输入图片说明

格兰特·温尼

查看您的屏幕截图,“高级法语I:结构和表达”“中世纪艺术和建筑”的键不匹配,该键说明了错误的计数。

而是,将CourseEnrollmentsByStudentSQLResult集合过滤为与字典关键字匹配的那些,然后在那些匹配的记录中选择所有课程,最后对“必需”的课程进行计数。

@result.Value.Where(r => r.Course == result.Key)
             .SelectMany(r => r.Courses)
             .Count(c => c.Type == "required");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python中获取字典值

来自分类Dev

如何在Python中获取字典值

来自分类Dev

C#获取字典类的值

来自分类Dev

如何在字典python中获取不同值的计数

来自分类Dev

获取字典列表中重复值的计数

来自分类Dev

如何在C#中获取字体粗细?

来自分类Dev

如何在python的字典中获取字典

来自分类Dev

如何在Python的字典中获取字典的路径?

来自分类Dev

C# 无法从值 (string[]) 中获取字典键 (string)

来自分类Dev

如何在Python中获取字典中非空值的位置

来自分类Dev

如何在与相同键关联的计划字符串中获取字典值

来自分类Dev

获取字典列表中字典的值

来自分类Dev

如何在C#中从字典中获取值

来自分类Dev

如何获取字典数组中特定键的值?

来自分类Dev

如何在python中获取字典的键

来自分类Dev

如何在Mongoengine Python中获取字典对象?

来自分类Dev

获取字典中特定键的值

来自分类Dev

Dict KeyError获取字典中的值

来自分类Dev

python在列表中获取字典值

来自分类Dev

获取字典中匹配键的值

来自分类Dev

python在列表中获取字典值

来自分类Dev

从键列表中获取字典的值

来自分类Dev

python:获取字典值中的键值

来自分类Dev

如何通过检查字典中映射的键来获取字典中的值

来自分类Dev

如何在C#中获取字符串中特定文本的行号

来自分类Dev

使用C#中的字典提取字典中的键和值

来自分类Dev

如何获取字段值 - selenium c#

来自分类Dev

在C#中获取字符串之间的值

来自分类Dev

如何在C#控制台中的给定坐标中获取字符?