#c# #arrays #protected
#c# #массивы #защищенный
Вопрос:
Я пытаюсь добавить полную сумму всех TotalPrice для 5 входных данных, когда я добавляю это:
for(x= 0; x < InputOrder.Length; x){
Console.WriteLine("Total is ${0}", InputOrder[x].TotalPrice );
Я получаю сообщение об ошибке при компиляции:
ошибка CS0200: свойство или система индексации.Порядок.Общая цена не может быть назначена — она доступна только для чтения
Когда я пишу это так, оно компилируется, и результат правильный, просто кажется, что есть гораздо лучший способ сделать это
Console.WriteLine("Total is ${0}",
(InputOrder[0].TotalPrice
InputOrder[1].TotalPrice
InputOrder[2].TotalPrice
InputOrder[3].TotalPrice
InputOrder[4].TotalPrice));
Любая помощь была бы оценена
Ответ №1:
Console.WriteLine("Total is ${0}", InputOrder.Sum(x=>x.TotalPrice));
Это не array, это ваш порядок ввода.Итоговая цена, которая защищена
Комментарии:
1. Вам не нужен цикл for, если вы используете выражение LINQ.
2. Ошибка копирования и вставки @Oded … при запуске не было LINQ
Ответ №2:
Старая школа:
int total = 0;
for(x= 0; x < InputOrder.Length; x){
total = InputOrder[x].TotalPrice;
Console.WriteLine("Total is ${0}", total);
LINQ:
Console.WriteLine("Total is ${0}", InputOrder.Sum(item => item.TotalPrice));