我一直在来回试图确定是否有办法确定startxref
中的objects
是否属于特定类型。
基本上我正在尝试开发一个函数
List<>
但是从我读过的所有内容和我尝试的所有内容中我都得出结论,这在C#中是不可能的。
编辑:我想在下面进行比较
public List<Object> ReadWriteArgs { get; set; }
public Booolean ConfirmRWArgs(int count, List<Type> types)
{
if(ReadWriteArgs != null && ReadWriteArgs.Count == count)
{
// Compare List<Type> to the types of List<Object>
return true;
}
return false;
}
答案 0 :(得分:4)
public List<Object> ReadWriteArgs { get; set; }
public bool ConfirmRWArgs(int count, List<Type> types)
{
return ReadWriteArgs != null
&& ReadWriteArgs.Count == count
&& ReadWriteArgs.Zip(types, (arg, type) => arg.GetType() == type).All(b => b);
}
它只是将参数列表和类型列表压缩在一起,检查每个参数是否属于合适的类型。
测试:
ReadWriteArgs = new List<object>() { "string", 0, 'c' };
ConfirmRWArgs(3, new List<Type>() { typeof(string), typeof(int), typeof(char) }); // true
ConfirmRWArgs(3, new List<Type>() { typeof(string), typeof(int), typeof(bool) }); // false
答案 1 :(得分:2)
public List<Object> ReadWriteArgs { get; set; }
public bool ConfirmRWArgs(List<Type> types)
{
for (int i = 0; i < types.Count; i++)
{
if (ReadWriteArgs[i].GetType() != types[i])
return false;
}
return true;
}
答案 2 :(得分:0)
这样的事情?
public List<Object> ReadWriteArgs { get; set; }
public Booolean ConfirmRWArgs(int count, List<Type> types)
{
if(ReadWriteArgs != null && ReadWriteArgs.Count == count)
{
// Compare List<Type> to the types of List<Object>
if (types.IsGenericType && types.GetGenericTypeDefinition() == typeof(List<>))
return true;
}
return false;
}