C#添加到列表,同时迭代它

时间:2017-11-10 10:55:22

标签: c#

我有一个从数据库选择创建的列表,其中包括每行中的时间戳和用户名。

然后我将通过结果进行分析,并计算出数据库中时间戳与当前时间的差异。

然后我需要将此信息写入原始列表,以便我可以在屏幕上完全显示它,这可能吗?

或者我需要两个清单吗?

我的代码:

public ActionResult Index()
    {

        DateTime now = DateTime.UtcNow;

        var ideaTL = _context.IdeaTimelines
            .OrderByDescending(c => c.Timestamp)
            .ToList();


        viewModel.IdeaTimeLine = ideaTL;


        foreach (var users in ideaTL)
        {

                var diffInDays = Math.Floor((now - users.Timestamp).TotalDays);
                var diffInHours = Math.Floor((now - users.Timestamp).TotalHours) - ((diffInDays) * 24);

                viewModel.DaysAgo = diffInDays;
                viewModel.HoursAgo = diffInHours; 

        }

        return View(viewModel);
    }

ideaTL是一个列表,然后我可以为每个显示但是viewModel变量不是列表,所以我只得到其中一个存储,可能是它被循环覆盖。它们可以存储为列表还是存储在ideaTL列表中?

如果不能这样做,请提供替代方案,即我需要另一个清单吗?

1 个答案:

答案 0 :(得分:0)

可能会因为我没有足够的代表来评论我会做什么但是......如果你将这些作为属性添加到你的列表模型中,你可以使用。选择( )附上这些额外信息。如果你在.Select中链接它将是类似.Select(m => new yourobject {normalprop = data,customprop =某个函数接收项目并返回prop})。