C# 在列表中赋值<;T>;当T模型本身具有列表时<;T>;作为财产
我需要一个编码帮助。我有3个类:SiteMapSection(保存sectionUrl和SiteMapSubSection列表)、SiteMapSubSection(保存subSectionUrl和SiteMapArticle列表)和SiteMapArticle。这是班级结构C# 在列表中赋值<;T>;当T模型本身具有列表时<;T>;作为财产,c#,list,class,C#,List,Class,我需要一个编码帮助。我有3个类:SiteMapSection(保存sectionUrl和SiteMapSubSection列表)、SiteMapSubSection(保存subSectionUrl和SiteMapArticle列表)和SiteMapArticle。这是班级结构 public class SiteMapSection { public string sectionUrl { get; set; } public List<SiteMapSubSection&g
public class SiteMapSection
{
public string sectionUrl { get; set; }
public List<SiteMapSubSection> subSection { get; set; }
}
public class SiteMapSubSection
{
public string subSectionUrl { get; set; }
public List<SiteMapArticle> article { get; set; }
}
public class SiteMapArticle
{
public string url { get; set; }
}
var siteMapSection = new List<SiteMapSection>();
DL.SectionArticle sa = new NewsFeed.BusinessTier.DataAccessLayer.SectionArticle();
foreach (BE.Section section in BL.Sections.Find(websiteId, parentSectionId))
{
int sectionId = section.Id;
var mySection = new SiteMapSection();
mySection.sectionUrl = BL.Sections.VirtualPath(section) + ".aspx";
mySection.subSection = new List<SiteMapSubSection>();
siteMapSection.Add(mySection);// NOTICE CHANGE HERE
//Debug.WriteLine(siteMapSection[0].sectionUrl);
foreach (BE.Section subsection in BL.Sections.Find(websiteId, sectionId))
{
int subSectionId = subsection.Id;
var mySubSection = new SiteMapSubSection();
mySubSection.subSectionUrl = BL.Sections.VirtualPath(subsection) + ".aspx";
mySubSection.article = new List<SiteMapArticle>();
enter code here
mySection.subSection.Add(mySubSection);// NOTICE CHANGE HERE
//Debug.WriteLine(smss[0].subSectionUrl);
var articles = sa.GetArticlesForSection(websiteId, subSectionId, 10);
foreach (var article in articles)
{
mySubSection.article.Add(new SiteMapArticle { url = BL.Sections.VirtualPath(subsection) + "/" + article.Code + "-" + UrlEncoding.ArticleEncode(article.Headline) + ".aspx" });// NOTICE CHANGE HERE
//Debug.WriteLine(sma[0].url);
}
}
}
请帮我做这个。提前感谢。在构造函数中初始化小节
public class SiteMapSection
{
public string sectionUrl { get; set; }
public List<SiteMapSubSection> subSection { get; set; }
public SiteMapSection()
{
subSection =new List<SiteMapSubSection>();
}
}
var siteMapSection = new List<SiteMapSection>();
DL.SectionArticle sa = new NewsFeed.BusinessTier.DataAccessLayer.SectionArticle();
foreach (BE.Section section in BL.Sections.Find(websiteId, parentSectionId))
{
int sectionId = section.Id;
var mySection = new SiteMapSection();
mySection.sectionUrl = BL.Sections.VirtualPath(section) + ".aspx";
mySection.subSection = new List<SiteMapSubSection>();
siteMapSection.Add(mySection);// NOTICE CHANGE HERE
//Debug.WriteLine(siteMapSection[0].sectionUrl);
foreach (BE.Section subsection in BL.Sections.Find(websiteId, sectionId))
{
int subSectionId = subsection.Id;
var mySubSection = new SiteMapSubSection();
mySubSection.subSectionUrl = BL.Sections.VirtualPath(subsection) + ".aspx";
mySubSection.article = new List<SiteMapArticle>();
enter code here
mySection.subSection.Add(mySubSection);// NOTICE CHANGE HERE
//Debug.WriteLine(smss[0].subSectionUrl);
var articles = sa.GetArticlesForSection(websiteId, subSectionId, 10);
foreach (var article in articles)
{
mySubSection.article.Add(new SiteMapArticle { url = BL.Sections.VirtualPath(subsection) + "/" + article.Code + "-" + UrlEncoding.ArticleEncode(article.Headline) + ".aspx" });// NOTICE CHANGE HERE
//Debug.WriteLine(sma[0].url);
}
}
}
公共类SiteMapSection
{
公共字符串部分URL{get;set;}
公共列表子节{get;set;}
公共站点地图部分()
{
分段=新列表();
}
}
初始化变量部分和小节中的集合
并直接添加到它们中
var siteMapSection = new List<SiteMapSection>();
DL.SectionArticle sa = new NewsFeed.BusinessTier.DataAccessLayer.SectionArticle();
foreach (BE.Section section in BL.Sections.Find(websiteId, parentSectionId))
{
int sectionId = section.Id;
var mySection = new SiteMapSection();
mySection.sectionUrl = BL.Sections.VirtualPath(section) + ".aspx";
mySection.subSection = new List<SiteMapSubSection>();
siteMapSection.Add(mySection);// NOTICE CHANGE HERE
//Debug.WriteLine(siteMapSection[0].sectionUrl);
foreach (BE.Section subsection in BL.Sections.Find(websiteId, sectionId))
{
int subSectionId = subsection.Id;
var mySubSection = new SiteMapSubSection();
mySubSection.subSectionUrl = BL.Sections.VirtualPath(subsection) + ".aspx";
mySubSection.article = new List<SiteMapArticle>();
enter code here
mySection.subSection.Add(mySubSection);// NOTICE CHANGE HERE
//Debug.WriteLine(smss[0].subSectionUrl);
var articles = sa.GetArticlesForSection(websiteId, subSectionId, 10);
foreach (var article in articles)
{
mySubSection.article.Add(new SiteMapArticle { url = BL.Sections.VirtualPath(subsection) + "/" + article.Code + "-" + UrlEncoding.ArticleEncode(article.Headline) + ".aspx" });// NOTICE CHANGE HERE
//Debug.WriteLine(sma[0].url);
}
}
}
var siteMapSection=new List();
DL.SectionArticle sa=NewsFeed.BusinessTier.DataAccessLayer.SectionArticle();
foreach(BL.Sections.Find中的BE.Section(网站ID,父节ID))
{
int sectionId=section.Id;
var mySection=新建SiteMapSection();
mySection.sectionUrl=BL.Sections.VirtualPath(section)+“.aspx”;
mySection.subSection=新列表();
siteMapSection.Add(mySection);//注意这里的更改
//Debug.WriteLine(siteMapSection[0].sectionUrl);
foreach(在BL.Sections.Find(websiteId,sectionId)中的BE.Section小节)
{
int subSectionId=subsection.Id;
var mySubSection=new SiteMapSubSection();
mySubSection.subSectionUrl=BL.Sections.VirtualPath(subsection)+“.aspx”;
mySubSection.article=新列表();
在这里输入代码
mySection.subSection.Add(mySubSection);//注意这里的更改
//Debug.WriteLine(smss[0].subSectionUrl);
var articles=sa.GetArticlesForSection(websiteId,subSectionId,10);
foreach(条款中的var条款)
{
mySubSection.article.Add(新建SiteMapArticle{url=BL.Sections.VirtualPath(小节)+“/”+article.Code+“-”+UrlEncoding.articleCode(article.Headline)+“.aspx”});//注意这里的更改
//Debug.WriteLine(sma[0].url);
}
}
}
试试这个:
var siteMapSection = new List<SiteMapSection>();
DL.SectionArticle sa = new NewsFeed.BusinessTier.DataAccessLayer.SectionArticle();
foreach (BE.Section section in BL.Sections.Find(websiteId, parentSectionId))
{
int sectionId = section.Id;
var mySection = new SiteMapSection();
mySection.sectionUrl = BL.Sections.VirtualPath(section) + ".aspx";
mySection.subSection = new List<SiteMapSubSection>();
siteMapSection.Add(mySection);// NOTICE CHANGE HERE
//Debug.WriteLine(siteMapSection[0].sectionUrl);
foreach (BE.Section subsection in BL.Sections.Find(websiteId, sectionId))
{
int subSectionId = subsection.Id;
var mySubSection = new SiteMapSubSection();
mySubSection.subSectionUrl = BL.Sections.VirtualPath(subsection) + ".aspx";
mySubSection.article = new List<SiteMapArticle>();
enter code here
mySection.subSection.Add(mySubSection);// NOTICE CHANGE HERE
//Debug.WriteLine(smss[0].subSectionUrl);
var articles = sa.GetArticlesForSection(websiteId, subSectionId, 10);
foreach (var article in articles)
{
mySubSection.article.Add(new SiteMapArticle { url = BL.Sections.VirtualPath(subsection) + "/" + article.Code + "-" + UrlEncoding.ArticleEncode(article.Headline) + ".aspx" });// NOTICE CHANGE HERE
//Debug.WriteLine(sma[0].url);
}
}
}
var siteMapSection = new List<SiteMapSection>();
DL.SectionArticle sa = new NewsFeed.BusinessTier.DataAccessLayer.SectionArticle();
foreach (BE.Section section in BL.Sections.Find(websiteId, parentSectionId))
{
int sectionId = section.Id;
var siteMap=new SiteMapSection { sectionUrl = BL.Sections.VirtualPath(section) + ".aspx" };
Debug.WriteLine(siteMap.sectionUrl);
var smss = new List<SiteMapSubSection>();
foreach (BE.Section subsection in BL.Sections.Find(websiteId, sectionId))
{
int subSectionId = subsection.Id;
var sms=new SiteMapSubSection { subSectionUrl = BL.Sections.VirtualPath(subsection) + ".aspx" };
Debug.WriteLine(smss[0].subSectionUrl);
var sma = new List<SiteMapArticle>();
var articles = sa.GetArticlesForSection(websiteId, subSectionId, 10);
foreach (var article in articles)
{
var sm= new SiteMapArticle { url = BL.Sections.VirtualPath(subsection) + "/" + article.Code + "-" + UrlEncoding.ArticleEncode(article.Headline) + ".aspx" };
sma.Add(sm);
Debug.WriteLine(sm.url);
}
sms.article=sma;
smss.Add(sms);
}
siteMap.subSection=smss;
siteMapSection.Add(siteMap);
}
var siteMapSection=new List();
DL.SectionArticle sa=NewsFeed.BusinessTier.DataAccessLayer.SectionArticle();
foreach(BL.Sections.Find中的BE.Section(网站ID,父节ID))
{
int sectionId=section.Id;
var siteMap=newsitemapsection{sectionUrl=BL.Sections.VirtualPath(section)+“.aspx”};
Debug.WriteLine(siteMap.sectionUrl);
var smss=新列表();
foreach(在BL.Sections.Find(websiteId,sectionId)中的BE.Section小节)
{
int subSectionId=subsection.Id;
var sms=newsitemapsubsection{subSectionUrl=BL.Sections.VirtualPath(subsection)+“.aspx”};
Debug.WriteLine(smss[0].subSectionUrl);
var sma=新列表();
var articles=sa.GetArticlesForSection(websiteId,subSectionId,10);
foreach(条款中的var条款)
{
var sm=new SiteMapArticle{url=BL.Sections.VirtualPath(小节)+“/”+article.Code+“-”+UrlEncoding.ArticleEncode(article.Headline)+“.aspx”};
sma.添加(sm);
Debug.WriteLine(sm.url);
}
sms.article=sma;
添加(sms);
}
siteMap.subSection=smss;
添加(站点地图);
}
小节,未找到文章。在foreach启动之前,是否需要像下面这样声明var subSection=new List()和var article=new List()?试过这个,还是没找到。太好了。我看到的是章节列表,但不是文章,这是完全缺失的。我们正在为每个SiteMapSubSection设置文章属性。sms.article=sma;确保物品没有损坏empty@AbhimanyuKumarVatsa子部分为0,因为列表为空。这是一个没有子部分的新对象