我不知道這是否可能,但我如何訪問已在初始化程序中設置的對象屬性,以便我可以使用它在相同的初始化程序中設置另一個屬性?如何訪問初始化程序中設置的對象屬性?
這裏就是我想要做的事:
var usersWithCount =
users
.AsEnumerable()
.Select(
u =>
new User()
{
UserId = u.UserId,
UserName = u.UserName,
Email = u.Email,
RelatedId = u.RelatedId,
ReviewCount = u.Reviews.Count(r => !r.Deleted && r.Approved),
HelpfulYesCount = u.Reviews.Where(r => !r.Deleted && r.Approved).Sum(r => r.HelpfulYes),
HelpfulNoCount = u.Reviews.Where(r => !r.Deleted && r.Approved).Sum(r => r.HelpfulNo),
TotalPoints = ReviewCount + HelpfulYesCount - HelpfulNoCount,
DateCreated = u.DateCreated
})
.OrderByDescending(user => user.TotalPoints);
不工作的部分是 「TotalPoints = ReviewCount + HelpfulYesCount - HelpfulNoCount」。我寧願避免再次使用「u.Reviews.Count(r =>!r.Deleted & & r.Approved)」,我不想通過循環結果來添加這些值來設置總積分。
如何在初始化程序中引用設置在TotalPoints屬性上方的那些屬性?有什麼方法可以將它們設置爲等於變量,並將它們引用到設置的位置以及我試圖添加它們的位置?我是否以完全錯誤的方式接近這種情況?
這完美地工作。謝謝! – upheaval 2009-12-16 22:42:33