[英]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.