[英]Why do I get the error: " Specified Cast is not valid" when trying to populate my listview in xamarin.forms with a list in my viewModel?
[英]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.