如何在Xamarin IOS中将NSArray转换为List<string>

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

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

运用

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

现在我必须将TimeFilePath转换为List

我试过以下但是失败了

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

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

提问于
用户回答回答于

听起来你希望列表arrTime(不是TimeFilePath)作为PathForResource返回a,string所以你的问题中的演员表没有使用正确的变量。

有很多方法可以做到,但我建议您使用.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()

扫码关注云+社区

领取腾讯云代金券