我不知道这是否可能,但我如何访问已在初始化程序中设置的对象属性,以便我可以使用它在相同的初始化程序中设置另一个属性?如何访问初始化程序中设置的对象属性?
这里就是我想要做的事:
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