我有一个类有这样的代码
pCollection pub = RSSXmlDeserializer.GetPub(path, fReload);
字符串
Get pub是返回pub的集合的方法。
我如何迭代它们。我试过了
for (var n = 0; n < pub.Count; n++) {
}
型
这是getPub方法
public static PCollection GetPub(string path, bool fReload)
{
HttpApplicationState session = HttpContext.Current.Application;
PCollection pub = session["PUB"] as PCollection;
if pub == null || fReload)
{
StreamReader reader = null;
try
{
XmlSerializer serializer = new XmlSerializer(typeof(PCollection));
reader = new StreamReader(path);
pub = (PCollection)serializer.Deserialize(reader);
session["PUB"] = pub;
}
catch (Exception ex)
{
//throw ex;
}
finally
{
reader.Close();
}
}
return pub;
}
}
[Serializable()]
public class Pub
{
[System.Xml.Serialization.XmlElement("title")]
public string Title { get; set; }
[System.Xml.Serialization.XmlElement("description")]
public string Description { get; set; }
[System.Xml.Serialization.XmlElement("imageUrl")]
public string ImageUrl { get; set; }
}
[Serializable()]
[System.Xml.Serialization.XmlRoot("RPublications")]
public class PCollection
{
[XmlArray("Pub")]
[XmlArrayItem("Pub", typeof(Pub))]
public Pub[] Pub { get; set; }
}
型
但是“Count”不被识别。我收到此消息,pCollection没有'Count'的定义...
我如何迭代集合n得到集合元素?
2条答案
按热度按时间tez616oj1#
您可以用途:
字符串
请注意,您的
PCollection
类没有遵循良好的.NET实践,因为它命名为“Collection”,但没有实现任何集合的标准接口。您可能需要考虑重新工作,使其更加“标准化”。8e2ybdfx2#
PCollection
并不是一个真正的集合。它是一个包含集合(更准确地说是数组)的类。所以要迭代,你需要迭代数组:字符串
或者,如果你不关心索引,只想从头到尾浏览一遍集合:
型
(更一致的类型和成员命名可能会有所帮助。