私は投稿のリストを持っています。私は意見のリストを持っています。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();
}
しかし、 'impressions' varは最後のループだけを取得します。私はそれを解決する方法がわかりませんが、C#4.0では配列とリストに関する経験はほとんどありませんでした。私はそれが印象[n]のように使うことができるかどうかわかりません。私は試しましたが、うまくいきません。
また、私の剃刀ビューでこのループの結果を制御する方法に関するサンプルコードが必要です。 私は今、この持っている:
@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つのポストの結果を持っていけないcuzの私は、それが本当にうまくいくかどうかわからないんだけど、それだけで最後の結果を取得します。
誰でもお手伝いできますか?
を行い= D @Klausありがとうございました –