我被困在这种情况下,我必须将一行二维数组与一维数组进行比较。两个数组都有像 + 和 - 和 D 这样的字符。为了可用,两个数组(行和单个数组)应该完美匹配,但如果任何一个有字符 D(怀疑),它应该被认为是包容性的,例如。{+,-,d} 与 {+,-,-}, {+,-,d}, {+,d,d} 相比,程序应该返回 2 和 3 的行号。
问问题
1321 次
1 回答
0
类似的东西?
var mat = new[,] {{'-','+','d'},{'-','-','d'},{'-','d','+'}};
var arr = new[] {'d','-','+'};
var matHeight = mat.GetLength(0);
var validRows = new List<int>();
for (int y = 0; y < matHeight; y++)
{
bool isRowValid = true;
for (int x = 0; x < arr.Length; x++)
{
if (mat[y, x] != 'd' && arr[x] != 'd' && mat[y, x] != arr[x])
{
isRowValid = false;
break;
}
}
if (isRowValid)
{
validRows.Add(y);
}
}
foreach (var y in validRows)
{
Console.WriteLine("Row {0} is valid", y);
// will print 1 and 2 (two last rows indices)
}
不过,我建议使用数组数组(锯齿状数组)而不是二维数组。
于 2013-05-24T08:17:48.587 回答