替换2d数组中的字符串值

时间:2014-10-03 13:18:04

标签: c# arrays 2d

我正在尝试替换二维数组中的字符串值并尝试以下代码,但没有发生任何事情

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 ");
}

4 个答案:

答案 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";
             }