Вот пример того, что я думаю, что было бы лучше, структура данных:
Для компьютера, необходимо провести какую-то информацию, таким образом, создать класс для компьютера:
public class Computer
{
public string HostName { get; set; }
public int Row { get; set; }
public int Column { get; set; }
//Whatever else you want to add, like
public bool IsActive { get; set; }
public bool IsScrewingAround { get; set; }
}
Тогда вы можете использовать словарь для хранения данных:
public Dictionary<string, Computer> _computers =
new Dictionary<string, Computer>(StringComparer.OrdinalIgnoreCase);
И вы добавляете компьютеры к нему, как:
_computers.Add("someHostName", new Computer()
{
HostName = "someHostName",
Row = 0,
Column = 4,
IsActive = true,
IsScrewingAround = false
});
Тогда вы можете посмотреть компьютеры от имени хоста в O (1) операция, как:
var cpu = _computers["hostName"];
Или получить список компьютеров, которые завинчивание вокруг:
var screwOffs = _computers.Values.Where(c => c.IsScrewingAround);
Хочет все компьютеры в строке 4?
var row4 = _computers.Values.Where(c => c.Row == 4);
Это дает вам преимущество над массивом, что он может расти на основе количества Computer
с добавленными к нему в случае, если ваши изменения формы комнаты.
Действительно, это может быть List<Computer>
, если вам не нужен поиск O (1) для имени хоста, который, как я предполагаю, будет точным, учитывая относительно небольшое количество предметов, которые у вас есть в классе.
Кроме того, похоже, что вам нужно пропустить столбцы 3-6 для строк 6 и 7. – juharr
Я не думаю, что массив является правильной структурой данных здесь, словарь с «компьютерной» структурой данных будет более уместным, используя имя хоста в качестве ключа и «Компьютер», удерживающие позицию строки/столбца, имя хоста и любые данные о нужной станции. –
он уже позаботился :), мне просто нужен способ присвоить определенное значение и получить его, пока сервер не перестанет получать данные. – charlie9495