Я предполагаю, что вы имеете в виду, что значения должны быть исключительно все 1 или 0?В этом случае вам нужно протестировать каждый случай отдельно.Ваш существующий код имеет значение true, когда массив содержит только 0 или 1.Было бы неверно, если любое из значений было 2, хотя.Одно из решений:
var allAreZero = new string[] { " 0 ", " 0", " 0" };
var allAreOne = new string[] { " 1 ", "1", " 1" };
var mixedOnesAndZeros = new string[] { " 1 ", "0", " 1" };
private bool ArrayIsExclusivelyTrueOrFalse(string[] data)
{
return data.All(i => int.TryParse(i, out int value) && value == 0) ||
data.All(i => int.TryParse(i, out int value) && value == 1);
}
ArrayIsExclusivelyTrueOrFalse(allAreZero); // true
ArrayIsExclusivelyTrueOrFalse(allAreOne); // true
ArrayIsExclusivelyTrueOrFalse(mixedOnesAndZeros); // false