Как выполнить этот цикл foreach, который мне нужен? - PullRequest
0 голосов
/ 03 декабря 2011

У меня есть веб-приложение, в котором есть дневник. В этом дневнике я могу публиковать обновления, а мои друзья могут видеть его и голосовать. Они могут нравиться, в отличие и т. Д.

Итак, я беру 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'

Мне бы хотелось, чтобы этот "впечатления" получали все показы, связанные с этими 6 последними сообщениями, которые я показываю на своей странице.

Итак, у меня есть каждый foreach для записи в дневнике, у меня есть другой foreach для моих показов и его значений, но, с другой стороны, у этого var 'впечатлений' будет 2 цикла foreach внутри, по одному для каждого сообщения и одно впечатление foreach.

Может ли кто-нибудь помочь мне с этим примером для моего контроллера и для моего бритвенного вида? Мое объяснение достаточно ясно? Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 03 декабря 2011

показов типа string.

var impressions = "";

И вы пытаетесь присвоить список этой переменной.

Измените его на

List<ImpressionSet> impressions;
1 голос
/ 03 декабря 2011

попробуйте это

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();
         });
0 голосов
/ 03 декабря 2011
    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 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...