簡體   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