如何将System.Array转换为System.Collections.Immutable.ImmutableArray?

时间:2015-08-28 18:22:24

标签: c#

当我尝试隐式转换时,我收到此错误:

Cannot implicitly convert type 'System.Array' to 'System.Collections.Immutable.ImmutableArray<Type>'

当我尝试显式转换时,我会收到以下错误:

Cannot convert type 'System.Array' to 'System.Collections.Immutable.ImmutableArray'

Cannot convert to static type 'System.Collections.Immutable.ImmutableArray'

3 个答案:

答案 0 :(得分:3)

使用ImmutableArray.Create<T>([])进行转换:

var immutableArray = ImmutableArray.Create(yourArray);

答案 1 :(得分:0)

IReadOnlyCollection正是您在寻找什么。

答案 2 :(得分:0)

public static ImmutableArray<T> Create<T>(T[] items)
            {

                if (items.length == 0)
                {
                    // Avoid allocating an array.
                    return Create<T>();
                }

                var array = new T[items.length];
                for (int i = 0; i < items.length; i++)
                {
                    array[i] = items[i];
                }

                return new ImmutableArray<T>(array);
            }

使用上面的代码可以创建一个ImmutableArray。致电

return Create(yourArrayHere);