我正在尝试替换二维数组中的字符串值并尝试以下代码,但没有发生任何事情
foreach (string item in Arr)
{
if (UserInput.Equals(item))
{
item.Replace(UserInput, "X ");
}
}
同样适用于此代码没有发生任何事情......
Console.WriteLine("Select a seat that you want to ocupy");
string ln = Console.ReadLine();
if (ln.Equals(Arr))
{
ln = ln.Replace(ln, "X ");
}
答案 0 :(得分:3)
您当前的代码
item.Replace(UserInput, "X ");
创建新 String
然后忽略;它本来可能是
item = item.Replace(UserInput, "X ");
但是, foreach 循环中的不可能,所以让我们尝试 for 循环:
String[,] Arr = new String[,] {
{"A1", "A2", "A3", "A4"},
{"B1", "B2", "B3", "B4"}
};
String UserInput = "B3";
for(int line = Arr.GetLowerBound(0); line <= Arr.GetUpperBound(0); ++line)
for(int column = Arr.GetLowerBound(1); column <= Arr.GetUpperBound(1); ++column)
if (Arr[line, column].Contains(UserInput))
Arr[line, column] = "X";
答案 1 :(得分:0)
这应该可以解决问题:
string ln = Console.ReadLine();
for (int i = 0; i < Arr.length; i++) {
Arr[i] = Arr[i].Replace(ln, "X ");
}
答案 2 :(得分:0)
if (ln.Equals(Arr))
{
ln = ln.Replace(ln, "X ");
}
什么是Arr?是Array Object?
如果是的话,你不能只用整个数组做等于
你需要使用for循环或其他东西检查每一个
for (int i=0, len = Arr.Length; i < len; i++ )
{
if (ln.Equals(Arr[i]))
{
Console.WriteLine("old ln = " + ln);
ln = ln.Replace(ln, "X ");
Console.WriteLine("new ln = " + ln);
}
}
答案 3 :(得分:0)
试试这个:
string[,] Arr = new string[4, 5];
string textToReplace = "test";
for(int k=0;k < Arr.GetLength(0);k++)
for(int l=0;l < Arr.GetLength(1);l++)
if (Arr[k,l]==textToReplace){
Arr[k, l] = "X";
}