2-мерный массив - PullRequest
       4

2-мерный массив

1 голос
/ 23 декабря 2010

Для каждого элемента в массиве мне нужен уникальный идентификатор, такой как Seat1, Seat2, Seat 3 ....... вплоть до конца длины массива.

В настоящее время я сделал следующее:

int rows = 10, cols = 10;
bool[ , ] seatArray = new bool[rows , cols]; //10 rows, 10 collums

for (int i = 0; i < rows; i++)
    for (int j = 0; j < cols; j++ )
    {
        seatArray[i, j] = false;
    }

    foreach (bool element in seatArray)
    {
        Console.WriteLine("element {0}", element);
    }
}

это просто говорит "Element False" x 100 в консоли.

Мне нужно заменить «Элемент» на Seat1, Seat2, Seat3 .... до конца длины массива.

любая помощь будет высоко ценится!

спасибо!

Ответы [ 3 ]

4 голосов
/ 23 декабря 2010

Создайте класс Seat (или структуру, если более уместно) со свойствами ID и Occupied (?). Создайте массив этого типа.

public class Seat
{
    public string ID { get; set; }
    public bool Occupied { get; set; }
}

int rows = 10, cols = 10;
Seat[,] seats = new Seat[rows,cols];

for (int i = 0; i < rows; ++i )
{
    for (int j = 0; j < cols; ++j)
    {
         seats[i,j] = new Seat { ID = "Seat" + (i*cols + j), Occupied = false };
    }
}

foreach (var seat in seats)
{
    Console.WriteLine( "{0} is{1} occupied", seat.ID, seat.Occupied ? "" : " not" );
}
0 голосов
/ 23 декабря 2010

tvanfosson, я изо всех сил стараюсь, чтобы ваш код работал, я перевел его в новый класс из моего основного метода, см. Ниже:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Class1
    {
        public class Seat
            {
                public string ID { get; set; }
                public bool Occupied { get; set; }
            }

            int rows = 10, cols = 10;
            Seat[,] seats = new Seat[rows,cols];

            for (int i = 0; i < rows; ++i )
            {
                for (int j = 0; j < cols; ++j)
                {
                     seats[i,j] = new Seat { ID = "Seat" + (i*cols + j), Occupied = false };
                }
            }

            foreach (var seat in seats)
            {
                Console.WriteLine( "{0} is{1} occupied", seat.ID, seat.Occupied ? "" : " not" );
            }
    }
}

это правильно, так как мне кажется, что я получаю много синтаксисаошибки

спасибо!

0 голосов
/ 23 декабря 2010
  int count = 1;

for (int i = 0; i < rows; i++)
  for (int j = 0; j < cols; j++ )
  {
    seatArray[i, j] = count;
    count++;
  }

  foreach (bool element in seatArray)
  {
    Console.WriteLine("element {0}", element);
  }

не знаю, что это за язык, так что имейте в виду синтаксис, но просто сделайте какой-нибудь внешний счетчик для нумерации их

, который просто говорит false каждый раз, когда вы устанавливаете для каждого значение false, не используйте bool илинаписать класс для хранения истинного ложного и числовой информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...