Xamarin iOS - 为什么我不能在 NSArray 上按索引迭代或获取?

Xamarin iOS - Why Can't I Iterate or Fetch by Index on an NSArray?

我正在尝试在 Xamarin 中遍历 NSArray,或者按索引获取项目,如下所示:

  try
    {  
        NSData value = (NSData)NSUserDefaults.StandardUserDefaults["accounts"];
        NSKeyedUnarchiver unarchiver = new NSKeyedUnarchiver(value);

        NSArray valuesDictionary = (NSArray)NSKeyedUnarchiver.UnarchiveObject(value);

        foreach (var x in valuesDictionary)
        {

        }


        if (valuesDictionary != null)
        {
            var accountList = new List<Account>();

            int numberOfOrgs = (int)valuesDictionary.Count;

            for (int x = 0; x < numberOfOrgs; x++)
            {
                var org = valuesDictionary[x];
            }
        }

但是,编译器会为迭代和索引抛出错误。

   foreach (var x in valuesDictionary)
    {

    }

错误“foreach 语句无法对类型 'NSArray' 的变量进行操作,因为 'NSArray' 不包含 'GetEnumerator' 的 public 实例或扩展定义”

var org = valuesDictionary[x];

错误“无法将索引应用于 NSArray 类型”。

谁能告诉我这是为什么?在 Objective C 我想我可以做到这两件事。

谢谢!

对于将来遇到此问题的任何人,虽然您不能在 NSArray 上建立索引,但您可以使用 Xamarin 方法:

GetItem<type>(index)

例如

myArray.GetItem<NSObject>(0).

很有魅力:)