C#:计算元组列表中的不同值

巴里巫师

我试图获得每个 studentId 相同天数的总数。我已将日期时间转换为星期几(整数)。GetAllInfo 从其他类接收所有需要的数据。然后 GetTimeExercises 使用此数据。

列表练习中的数据示例: (291, 5) (301, 5) (291, 5)

291 是学生证,5 是星期几。

现在我想计算列表中的所有重复值并将总数添加到列表或字典中。通缉结果:学生证+总天数

例如: (291, 5) (301, 5) (291, 5) 应该给 (291, 2) (301, 5)

private List<Tuple<int, int>> ExcercisesWithTime = new List<Tuple<int, int>>(); 

public void GetAllTimeWithExercises()
{
    GetAllInfo();
    GetTimeExercise(AllStudentInfo);          
} 

private void GetTimeExercise(List<IctLabTable> studentInfo)
{
    foreach (var item in studentInfo)
    {
        ExcercisesWithTime.Add(new Tuple<int, int>(item.StudentId, ConvertDayOfWeek(item.CreatedAt)));                
    }            
}

private int ConvertDayOfWeek(DateTime dateValue)
{
    int dayOfWeek = (int) dateValue.DayOfWeek;

    return dayOfWeek;
}

我尝试了不同的东西,但没有成功。我试图通过创建字典来解决它:

private Dictionary<int, Tuple<int, int>> StudentDayTotalExercises = new Dictionary<int, Tuple<int, int>>();

//// Studentid + day (Example: 291 + 5)
private void CountSameDays(List<Tuple<int, int>> xList)
{
    foreach (var item in xList)
    {
        var TotalDays = 1;

        if (!StudentDayTotalExercises.ContainsKey(item.Item1))
        {
            var TupleStudentDays= new Tuple<int, int>(item.Item2, TotalDays );
            StudentDayTotalExercises.Add(item.Item1, TupleStudentDays);
        }

        else
        {
            Here I wanted to increment the value if the key existed. But without success.
            //StudentDayTotalExercises[item.Item1, ]++;
        }
    }
}
吉拉德格林

只需按 分组Tuple并计算出现次数:

List<Tuple<int, int>> excercisesWithTime = new List<Tuple<int, int>>
{
    Tuple.Create(291, 5),
    Tuple.Create(301, 5),
    Tuple.Create(291, 5)
};

// method syntax
var result = excercisesWithTime.GroupBy(key => key, item => 1)
                               .Select(group => new { 
                                   group.Key, 
                                   Duplicates = group.Count() 
                               });

//query syntax
var result = from item in excercisesWithTime
             group 1 by item into g
             select new {
                 g.Key,
                 Duplicates = g.Count()
             };

我建议您创建一个带有属性的适当类,而不是使用Tuples。用法更清晰,您无需记住在每个文件ItemX放置了什么。

如果您正在使用 C# 7.0,请查看其有关元组的功能

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

OCaml:计算成对列表中的不同值

来自分类Dev

计算 Python 列表中的不同值

来自分类Dev

如何计算列表中的不同值

来自分类Dev

从元组列表中删除值

来自分类Dev

根据元组的值以不同顺序对元组列表进行排序

来自分类Dev

当元组中每个位置的值均来自不同列表时,从元组序列创建值索引数组

来自分类Dev

Python:计算对象列表中给定属性的不同值的数量

来自分类Dev

计算列表中重复元组的数量

来自分类Dev

计算元组列表中的出现次数

来自分类Dev

分组3个元组并在C#中搜索元组列表以查找特定值

来自分类Dev

为组合框的DisplayMember分配一个元组列表中元组中的值-C#

来自分类Dev

从元组列表中获取每个元组的最大值列表

来自分类Dev

C ++中的n元组列表

来自分类Dev

如何比较列表中元组中的值

来自分类Dev

如何检查元组列表中的值?

来自分类Dev

替换列表/元组字典中的值 python

来自分类Dev

获取元组列表中的最大值

来自分类Dev

如何从元组列表中获取奇异值?

来自分类Dev

对存储元组列表的字典中的值求和

来自分类Dev

从元组列表中,获取最接近给定值的元组

来自分类Dev

根据每个元组中的值对元组进行分区列表

来自分类Dev

从元组列表中返回y值最小的元组

来自分类Dev

计算mongoDB中的不同值

来自分类Dev

计算mongoDB中的不同值

来自分类Dev

计算R中的不同值

来自分类Dev

元组列表中的非重复值列表以重复值终止

来自分类Dev

将元组类型的键与一个元组列表中的元组列表的值合并,python

来自分类Dev

如何从PostgreSQL中由管道分隔的列中的键值对列表计算不同的值

来自分类Dev

计算嵌套列表中的唯一元组

Related 相关文章

热门标签

归档