Я не знаю, возможно ли это вообще, но как я могу получить доступ к свойству объекта, которое было установлено в инициализаторе, чтобы я мог использовать его для установки другого свойства в том же инициализаторе?
Вот что я пытаюсь сделать:
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 .
Как я могу ссылаться на те свойства в инициализаторе, которые были установлены над свойством TotalPoints? Есть ли способ, которым я могу установить их равными переменным и ссылаться на них, где они установлены и где я пытаюсь добавить их? Я подхожу к этой ситуации совершенно неправильно?