我认为可以使用反射技术(一种我不太了解的技术)来解决这个问题。
我的代码在运行时接收到一些被序列化为XML的代码对象。当我接收并反序列化它时,有一个字段给我带来了一些麻烦。
有一个字段可以包含以下数据类的组合(为了清晰起见做了简化):
我需要应对以下情况:
object[] 包含:
非常感谢回答的人。最初我认为这个对象数组可能是离散对象的序列,或包含这些对象的数组序列。
正如所述,LINQ 语句将涵盖所有情况。
我的代码在运行时接收到一些被序列化为XML的代码对象。当我接收并反序列化它时,有一个字段给我带来了一些麻烦。
有一个字段可以包含以下数据类的组合(为了清晰起见做了简化):
class KeyValuePairType
{
public string Key;
public string Value;
}
class KeyValueListPair
{
public string Key;
public string[] Value;
}
我将这些作为 object[] 对象接收到我的代码中,需要在运行时确定它们包含的内容,以便可以调用本地对象上需要 KeyValuePairType[] 和 KeyValueListPair[] 作为参数的接口,例如:
public DoSomeWork(KeyValuePairType[] data1, KeyValueListPair[] data2)
我需要应对以下情况:
object[] 包含:
没有任何元素,此时我调用 DoSomeWork(null,null);
仅包含 KeyValuePairType 的数组,此时我调用 DoSomeWork(KeyValuePairType[],null);
仅包含 KeyValueListPair 的数组,此时我调用 DoSomework(null, KeyValueListPair[]);
同时包含这两种数组,此时我调用 DoSomework(KeyValuePairType[],KeyValueListPair[]);
非常感谢回答的人。最初我认为这个对象数组可能是离散对象的序列,或包含这些对象的数组序列。
正如所述,LINQ 语句将涵盖所有情况。