public CD[] GetCDCatalog()
{
XDocument docXML =
XDocument.Load(Server.MapPath("mydata.xml"));
var CDs =
from cd in docXML.Descendants("Table")
select new CD
{
title = cd.Element("title").Value,
star = cd.Element("star").Value,
endTime = cd.Element("endTime").Value,
};
return CDs.ToArray<CD>();
}
我在页面加载时调用此函数 即。 string [] arr = GetCDCatalog(); 但是这给出错误不能隐式地将类型'Calender.CD []'转换为'string []' 请makegetst我如何调用页面加载函数返回类型是数组。
答案 0 :(得分:6)
您的方法被声明为返回CD[]
,并且正如编译器告诉您的那样,您无法从CD[]
转换为string[]
。这样称呼它:
CD[] cds = GetCDCatalog();
如果您需要转换为字符串数组,那么您可以使用以下内容:
string[] cds = GetCDCatalog().Select(x => x.title).ToArray();
或者,如果你真的不需要它在数组中,你可以使用:
IEnumerable<string> cds = GetCDCatalog().Select(x => x.title);
答案 1 :(得分:0)
将Page.Load中的通话更改为Calender.CD[] arr = GetCDCatalog()
或使用List:
public List<CD> GetCDCatalog() { XDocument docXML = XDocument.Load(Server.MapPath("mydata.xml"));
var CDs =
from cd in docXML.Descendants("Table")
select new CD
{
title = cd.Element("title").Value,
star = cd.Element("star").Value,
endTime = cd.Element("endTime").Value,
};
return CDs.ToList();
}
答案 2 :(得分:0)
问题在于您将其称为:
string[] arr = GetCDCatalog();
当GetCDCatalog返回CD(CD [])数组时。
你需要这样做:
CD[] arr = GetCDCatalog();