如何在 xamarin ios 中将我的 NSArray 投射到 List<String>

How do I cast my NSArray to List<String> in xamarin ios

在我的 xamarin ios 项目中,我正在从文件中获取一些数组

正在使用

NSArray TimeFilePath = NSBundle.MainBundle.PathForResource("Time","txt");
            arrTime =  NSArray.FromFile(TimeFilePath);

现在我必须将 TimeFilePath 转换为列表

我尝试了以下但失败了

List<string>items = (List<string>)TimeFilePath;

帮我看看如何在 C# 中将 NSArray 转换为 List

听起来你想要 arrTime(而不是 TimeFilePath)中的列表作为 PathForResource returns a string 所以你的 您问题中的 cast 没有使用正确的变量。

有很多方法可以做到这一点,但我建议您使用 .NET,而不是 Apple,API 来实现这一点,例如

var TimeFilePath = NSBundle.MainBundle.PathForResource("Time","txt");
var lines = System.IO.File.ReadLines (TimeFilePath);
var arrTime = List<string> (lines);

我需要一行完成,我花了很长时间才弄清楚,所以我在这里分享我的结果。

可以使用 Enumerable.Range 来处理 Linq。

此示例通过迭代 NSArray 并对 NSArray 中的每个对象调用 ToString() 并在最后调用 ToList() 来实现。

Enumerable.Range(0, (int)((NSArray)arrTime).Count)
   .Select(i => ((NSArray)arrTime)
   .GetItem<NSString>(nuint.Parse(i.ToString())).ToString())
   .ToList()