如何将ArrayList转换为可空整数数组?

时间:2016-04-15 08:50:42

标签: c#

我想将ArrayList数据转换为int?[]。

我尝试了以下但失败了。 有没有人有想法?

data.ToArray(typeof(int?)) as int?[]
(int?[])data.ToArray(Nullable.GetUnderlyingType(typeof(int)))
(int?[])data.ToArray(Nullable.GetUnderlyingType(typeof(int?)))
(int?[])data.ToArray(typeof(int?))

4 个答案:

答案 0 :(得分:4)

如果您的ArrayList只包含可为空的int,那么这就是我们要做的:

var result = data.Cast<int?>().ToArray();

答案 1 :(得分:2)

这应该这样做:

res = data.Cast<int?>().ToArray();

答案 2 :(得分:1)

两种方式:如果data中的任何项目无法转换为int?,则抛出异常

  var result = data
    .Cast<int?>()
    .ToArray();

或( lenient ):仅投放可以投放到int?的项目:

  var result = data
    .OfType<int?>()
    .ToArray(); 

答案 3 :(得分:0)

试试这个!!

   result = data.Cast<int?>().ToArray();