У меня есть список, в котором каждый элемент представляет собой список целых чисел. Я хочу разработать LINQ для подсчета числа целых чисел, равных == 0 в каждом списке.Количество выбранных элементов в каждом внешнем списке
Так определяя мои списки
var prisoners = new List<List<int>>(n);
for (int c = 0; c < n; c++)
{
int[] l = new int[n];
prisoners.Add(new List<int>());
prisoners[c] = l.ToList<int>();
}
поэтому я сделал список, содержащий п списки п целых чисел, все равны нулю - то, что я заинтересован в это кол-во нулей в каждом списке, а именно минимум этот счет, который до тех пор, пока я работаю над списками, не будет n с самого начала.
я придумал
var q = (from arr in prisoners from int tally in arr
where tally == 0
group arr by arr into grp select grp.Count()).Min();
теперь проблема, кажется, что, когда список не имеет нулей в ней вообще, он оставляет запрос, и я не получаю ответа ноль. Сначала я получаю ответ «n» (когда все они равны нулю) - как только список не имеет нулей в нем, я не получаю нулевой ответ для MINIMUM count of zeroes.
Как найти минимальное количество нулей в любом из списков, содержащихся в списках? (который в конечном итоге будет равен нулю). Мне нужно сделать так, чтобы все списки вошли в группу, затем я подсчитываю, сколько нулей есть, но я не знаю, как это сделать.
Пример
int n = 3;
var prisoners = new List<List<int>>(n);
for (int c = 0; c < n; c++)
{
int[] l = new int[n];
prisoners.Add(new List<int>());
prisoners[c] = l.ToList<int>();
}
//return 3 below - that is correct at this point
var q = (from arr in prisoners from int tally in arr where tally == 0 group arr by arr into grp select grp.Count()).Min();
prisoners[1] = (new int[] { 1, 1, 1 }).ToList();
prisoners[2] = (new int[] { 1, 1, 0 }).ToList();
//so now one of the arrays has zero zeroes in it, but I get the answer 1 - zero was wanted, that is to say
//element 1 has a zero count of zero
q = (from arr in prisoners from int tally in arr where tally == 0 group arr by arr into grp select grp.Count()).Min();
Можете ли вы показать пример ввода и ожидаемого вывода? – Jamiec
ваш запрос работает должным образом - он выходит из-за того, что вы сначала фильтруете его на '== 0', а затем подсчитываете. – Jaya
@JS_GodBlessAll - я не говорю, что запрос возвращает ошибочные результаты, но это не то, что я хочу - я хочу подсчитать количество нулей в каждом массиве, а затем вернуть самый низкий из этих счетчиков (который может быть равен нулю) – Cato