繁体   English   中英

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

[英]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返回一个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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM