Суммирование только отобранных элементов с помощью array.Sum() - C#
Формулировка задачи:
Господа , подскажите что не так??? Метод по идее должен сложить все отобранные нечётные элементы массива int.Подскажите как правильно его использовать.При сложении -7+3+3+5+9 = 13 .У меня выводит 17.Где я облажался.
class Program
{
public static int[] arr ;
private static void func2(ref int value)
{
arr = new int[] {-7,3,8,3,5,-4,9 };
int number = 0;
string t = number.ToString();
Console.Write("Ввести номер действия:"); // можно
t = Console.ReadLine();
if (false)
{
return ; // не проблема, у value остаётся старое значение
}
number = Int32.Parse(t);
if (number==1)
{
for (int u = 0; u < arr.Length; ++u)
{
if (arr[u] % 2 != 0)
{
Console.Write(arr[u]+" , ");
}
}
Console.Write("\n"+arr.Sum());
}
Console.ReadKey();
}
//string s2;
// func2(ref s2); // нельзя, функция имеет право использовать значение,
// значит, оно должно быть инициализировано сначала
static void Main(string[] args)
{
int s2 = 0;
func2(ref s2); // нельзя, функция имеет право использовать значение,
// значит, оно должно быть инициализировано сначала
}
Кажется проблема решена .Забыл создать новый массив.
arr_1[u] = arr[u];
Console.Write(arr_1[u] + " , ");Решение задачи: «Суммирование только отобранных элементов с помощью array.Sum()»
textual
Листинг программы
var res = arr.Sum(x => x % 2 == 0 ? 0 : x);