Как объединить несколько массивов в список с помощью Linq?

Это зависит от того, что вы после:

  • Если виртуальная машина не скрывается от вас специально, вы можете использовать какой-то известный крючок. LIke ищет драйверы VmWare или наличие определенных строк в памяти или некоторые другие контрольные признаки.
  • Если виртуальная машина действительно хочет, чтобы вы делали для нее особые вещи, у нее будет некоторый очевидный крючок на месте, например, изменение идентификатора процессора или добавление некоторых специальных регистров, к которым вы можете получить доступ, чтобы обнаружить его. Или специальное устройство в известном месте в памяти (предполагая, что вы можете получить необработанный доступ к физическому пространству памяти вашего мира). NOte, что современные конструкции машин, такие как IBM Power6 и Sun UltraSparc T1 / T2, предназначены для ВСЕГО запускать гипервизор и никогда напрямую на необработанное оборудование. Интерфейс к «аппаратным средствам», который использует ОС, на самом деле является интерфейсом программного слоя гипервизора, без возможности обойти его. В этом случае обнаружение тривиально, поскольку оно является постоянным «да». Это вероятное будущее направление для всех компьютерных систем, которые могут позволить себе накладные расходы, посмотрите на поддержку в последних проектах, таких как чип Freescale QorIQ P4080, например (www.freescale.com/qoriq).
  • Если виртуальная машина намеренно пытается скрыть, и вы преследуете ее присутствие, это игра с кошкой и мышью, где временное нарушение и разный профиль производительности виртуальной машины почти всегда будут давать это прочь. Очевидно, что это зависит от того, как реализована виртуальная машина и сколько аппаратной поддержки существует в архитектуре (я думаю, что мэйнфрейм zSeries намного лучше скрывает присутствие виртуальной машины или стека виртуальных машин под вашей конкретной ОС, чем обычный x86 машина, например). См. http://jakob.engbloms.se/archives/97 для обсуждения этой темы. Можно попытаться скрыть как виртуальную машину, но обнаружение, скорее всего, всегда будет побеждать, если он будет достаточно стараться.

24
задан Gennady Vanin Геннадий Ванин 15 April 2013 в 11:06
поделиться

2 ответа

Вы можете использовать SelectMany , а затем ToArray ] для этого.

var result = source.SelectMany(i => i).ToArray();
59
ответ дан 28 November 2019 в 18:19
поделиться

Вы также можете использовать метод расширения .Concat () , а затем .ToArray () : x.Concat (y) .Concat (z) .ToArray ();

5
ответ дан 28 November 2019 в 18:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: