public string[] getallTourID()
{
ArrayList TourIDs = new ArrayList();
foreach (Tour o in TourCollections) //TourCollections is an arraylist of tour objects
{
TourIDs.Add(o.getID); //ID is a string from the tour object
}
return TourIDs.ToArray(typeof(string));
}
嗨,我在这个问题上需要帮助,我无法将arraylist
转换为string array
。错误说:
无法将System.Array类型隐式转换为string [],一个显式的 转换存在
问题来自ToArray()
功能。我可以知道这是什么问题吗?
非常感谢帮助:)
答案 0 :(得分:2)
我不明白为什么你需要一个原始ArrayList
集合,你应该把它变成List<Tour>
,然后提取Id:
因此:
return TourCollections.Select(t => t.getId).ToArray();
如果由于某种原因你不能这样做,那么使用OfType只返回某个类型的源集合中的对象。
return TourIDs.OfType<string>().ToArray();
答案 1 :(得分:1)
要解决您想要的问题,您只需使用简单的linq查询并避免使用任何中间显式数组/列表:
using System.Linq;
public string[] getallTourID()
{
return TourCollections.Select(o => o.getId).ToArray();
}
你可以实际上通过转换ToArray(typeof(string))as string[]
的结果来实现你想要的东西,但通常的现代“Csharpic”方法是linq投影。
答案 2 :(得分:1)
试试这个:
解决方案1:
string[] array = TourIDs.ToArray(typeof(string)) as string[];
解决方案2:
String[] array= (String[])TourIDs.ToArray(typeof(string));
答案 3 :(得分:0)
使用以下代码
TourIDs.ToArray(typeof(string)) as string[];
有关详细信息,请参阅https://www.dotnetperls.com/convert-arraylist-array