这是我的代码
con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/techsoft /PP1.accdb;Persist Security Info=False");
con.Open();
cm = new OleDbCommand("select aa from ab", con);
OleDbDataReader qq;
qq = cm.ExecuteReader();
ArrayList ss = new ArrayList();
while (qq.Read())
{
object[] values = new object[qq.FieldCount];
qq.GetValues(values);
ss.Add(values);
}
Run Code Online (Sandbox Code Playgroud)
如果我使用此语法进行转换
int[] i = (int[])ss.ToArray(System.Type.GetType("System.Int32"));
Run Code Online (Sandbox Code Playgroud)
出现以下错误“无法将源数组中的至少一个元素转换为目标数组类型。”
请给我一个解决方案或任何其他替代方法
如果您的对象不是整数,ArrayList ss则需要指定是失败还是忽略它们。
假设您要忽略它们,则可以使用LINQ:
int[] res = ss.OfType<int>().ToArray();
Run Code Online (Sandbox Code Playgroud)
(假设您有一个using System.Linq范围。)