Я думаю, что эту проблему можно решить с помощью отражения (технология, в которой я не слишком уверен).
Мой код получает некоторые объекты кода, которые были сериализованы в XML во время выполнения. Когда я получаю и десериализую его, одно поле доставляет мне некоторые хлопоты.
Существует поле, которое может содержать комбинацию следующих классов данных (упрощено для ясности):
class KeyValuePairType
{
public string Key;
public string Value;
}
class KeyValueListPair
{
public string Key;
public string[] Value;
}
Я получаю их в свой код как объект [], и мне нужно во время выполнения определить, что именно в нем содержится, чтобы я мог вызвать интерфейс локального объекта, который требует
KeyValuePairType [] и KeyValueListPair [] в качестве параметров, например,
public DoSomeWork(KeyValuePairType[] data1, KeyValueListPair[] data2)
Мне нужно справиться со следующими делами:
объект [] содержит:
ничего, в таком случае я звоню
DoSomeWork (NULL, NULL);
массив только KeyValuePairType,
в этом случае я звоню
DoSomeWork (KeyValuePairType [],
нуль);
массив только KeyValueListPair,
в этом случае я звоню
DoSomework (нуль,
KeyValueListPair []);
или массив каждого, в этом случае я
вызвать DoSomework (KeyValuePairType [],
KeyValueListPair []);
Любые идеи приветствуются.
Спасибо
Оказывается, массив объектов содержит случайную последовательность дискретных объектов. Первоначально я был убежден, что это может быть последовательность дискретизаций и массивов этих объектов.
Поскольку операторы LINQ будут охватывать все возможные варианты.
Могу ли я сказать большое спасибо тем, кто ответил. Я отправил +1 для тех, кто отвечает с заявлениями LINQ.