【问题标题】:How to perform this foreach loop I need?如何执行我需要的这个 foreach 循环?
【发布时间】:2012-01-11 20:56:47
【问题描述】:

我有一个带有日记的网络应用程序。在这个日记中,我可以发布更新,我的朋友可以看到它并投票。他们可以喜欢、不喜欢等等。

所以,我接受最后 6 个帖子,并且我还必须为每个帖子投票(喜欢、不喜欢等)。

我的问题是如何获得与日记帖子相关的印象票? 我试过这个:

var impressions = "";

foreach (var item in diaryPosts)
{
    impressions = (from i in db.Impressions
                   select new ImpressionsSet
                   {
                       ImpressionID = i.ID,
                       ImpressionTitle = i.Impression,
                       ImpressionNum = i.DiaryImpressions.Count(d => d.DiaryPostsID == item.PostID)
                   }).ToList();
}

但是使用这种方法,我得到了错误:

Cannot implicity convert type 'System.Collections.Generic.List<...>' to 'string'

我希望这个 var 'impressions' 获得与我在我的页面中显示的最后 6 个帖子相关的所有展示次数。

所以,对于我有的 foreach 日记帖子,我会对我的印象及其计数进行另一个 foreach,但另一方面,这个 var 'impressions' 内部将有 2 个 foreach 循环,每个帖子一个,一个 foreach 印象。

任何人都可以通过我的控制器和剃刀视图的示例来帮助我吗? 我的解释够清楚吗? 提前谢谢你。

【问题讨论】:

    标签: linq asp.net-mvc-3 c#-4.0 razor foreach


    【解决方案1】:

    impressions 是字符串类型。

    var impressions = "";

    然后您尝试将列表分配给该变量。

    改成

    List<ImpressionSet> impressions;
    

    【讨论】:

    • 非常感谢@Peri,现在我还有一个问题:在我看来,如何在我的 foreach 循环中访问这 2 个展示列表?
    • 我才意识到我需要 AddRange 而不是印象数 = ... 它是这样的:impressions.AddRange((from i in db.Impressions...).ToList());
    【解决方案2】:

    试试这个

    var allimpressions = diaryPosts.SelectMany(dp => {
             return (from i in dp.Impressions
              select new ImpressionsSet
              {
               ImpressionID = i.ID,
               ImpressionTitle = i.Impression,
               ImpressionNum = i.DiaryImpressions.Count(d => d.DiaryPostsID == dp.PostID)
              }).ToList();
             });
    

    【讨论】:

      【解决方案3】:
          var allimpressions = 
          from dp in diaryPosts
          from i in dp.Impressions
          let count = i.DiaryImpressions.Count (di => di.DiaryPostsID == dp.PostID)
          select new { ImpressionID = i.ID, ImpressionTitle = i.Impression, ImpressionNum = count };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-12
        • 1970-01-01
        • 2020-10-18
        • 2013-06-03
        • 2012-05-01
        相关资源
        最近更新 更多