1
我有一個帖子列表,我有一個意見列表,有4個意見的用戶可以爲每個帖子投票。C#Foreach循環無法按預期工作
這就像:
POST1
Vote (opinion A | 10 votes), vote (opinion B | 2 votes), vote (opinion C | 1 votes), vote (opinion D | 0 votes)
POST2
Vote (opinion A | 3 votes), vote (opinion B | 4 votes), vote (opinion C | 5 votes), vote (opinion D | 7 votes)
每篇文章在他或她的日記任何用戶的帖子,其他用戶可以投票1點意見。
在我控制我這一行,以獲得日記的帖子:
var diaryPosts = (from d in db.DiaryPosts
join e in db.EstadosDeAlma
on d.EstadosDeAlmaID equals e.ID
join u in db.User
on d.UserID equals u.ID
orderby d.ID descending
select new DiaryPostsSet
{
PostID = d.ID,
EstadoDeAlmaID = e.ID,
EstadoDeAlma = e.Title,
Author = u.Nickname,
Thumbnail = u.Thumbnail,
AuthorComment = d.Content,
Time = d.UpdateTime }).Take(6).ToList();
,我要儘量採取對每個DiaryPost,其意見票,這裏是我的問題。我有這樣的:
List<ImpressionsSet> impressions = new List<ImpressionsSet>();
foreach (var item in diaryPosts)
{
impressions = (from i in db.Impressions
select new ImpressionsSet
{
ImpressionID = i.ID,
ImpressionTitle = i.Impression,
UrlSlug = i.UrlSlug,
DiaryPostID = item.PostID,
ImpressionNum = i.DiaryImpressions.Count(d => d.DiaryPostsID == item.PostID)
}).ToList();
}
但'印象'var只獲取最後一個循環。我不知道如何解決這個問題,因爲我在C#4.0中只有很少的數組和列表經驗。我不知道我是否可以像印象[n]那樣使用它,我試過了,它不起作用。
我還需要一個示例代碼,說明如何在Razor視圖中控制此循環的結果。 我有現在這樣:
@foreach (var imp in ViewBag.ImpressionsList)
{
if (item.PostID == imp.DiaryPostID)
{
<td>
@{ string cbName = imp.UrlSlug; }
@{ string impression = imp.ImpressionTitle; }
@{ string value = imp.DiaryPostID + "|" + imp.ImpressionID + "|" + Session["id"].ToString(); }
<a class="voto" href="javascript:;" onclick="PostImpressions('@value')">@impression</a>
</td>
<td>
<a class="num" href="javascript:;" onclick="PostImpressions('@value')">@imp.ImpressionNum</a>
</td>
}
}
但我不知道這是否會真正的工作,因爲我不要有在我的印象VAR的2個職位的結果,它只是得到最後的結果。
任何人都可以幫助我嗎?的
THANK YOU = d @Klaus –