Обнулить подмассивы, если суммы не совпадают - PullRequest
0 голосов
/ 26 июня 2019

Учитывая два списка целочисленных массивов в форме:

genData = { {1,2,3,4}, {1,2,3,4}, {1,2,3,4}, {1,2,3,4}};
orgData = {{1,2,3,4}, {1,2,3,4}, {2,4,6,8}, {1,2,3,4}};

Я бы хотел определить, не совпадают ли суммы двух подмассивов с одинаковым индексом в обоих списках.Если суммы совпадают, ничего не делайте.Если суммы не совпадают, преобразуйте каждое целое число в обоих подмассивах в 0.

Например, в двух вышеупомянутых списках подмассивы с индексом 2 имеют несоответствующую сумму (10 против 20).Я хотел бы преобразовать списки в

genData = { {1,2,3,4}, {1,2,3,4}, {0,0,0,0}, {1,2,3,4} };
orgData = { {1,2,3,4}, {1,2,3,4}, {0,0,0,0}, {1,2,3,4} };

Я пытаюсь сначала создать список, если суммы, пытаясь

var genDataSum = genDataList.ForEach(x => x.Sum());

Но, очевидно, это выдает ошибки ...Msgstr "Невозможно присвоить void неявно типизированному значению".Буду очень признателен за любую помощь или руководство.

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Вам нужно использовать select, чтобы получить сумму. list.foreach работает как обычно для цикла.

List<int[]> genData = new List<int[]>
    {
        new int[] { 1, 2, 3, 4 },
        new int[] { 1, 2, 3, 4 },
        new int[] { 1, 2, 3, 4 },
        new int[] { 1, 2, 3, 4 }
    };

List<int[]> orgData = new List<int[]>
    {
        new int[] { 1, 2, 3, 4 },
        new int[] { 1, 2, 3, 4 },
        new int[] { 2, 4, 6, 8 },
        new int[] { 1, 2, 3, 4 }
    };


var sumsGenData = genData.Select(a => a.Sum()).ToList();
var sumsOrgData = orgData.Select(a => a.Sum()).ToList();

for (int i = 0; i < sumsGenData.Count; i++)
{
    if (sumsGenData[i] != sumsOrgData[i])
    {
        orgData[i] = new int[] { 0, 0, 0, 0 };
    }
}
1 голос
/ 26 июня 2019

ForEach ничего не возвращает.Используйте Select.

var orgData = { {1,2,3,4}, {1,2,3,4}, {0,0,0,0}, {1,2,3,4} };
var sums = orgData.Select( a => a.Sum() );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...