if (spanList.Count(p => p.ClassName == "p") == 2 && (spanList.Count(p => p.ClassName == "s") == 2))
{
lesson.lesson2Name = spanList.Where(p => p.ClassName == "p").ToList()[1].TextContent;
lesson.lesson2Place = spanList.Where(p => p.ClassName == "s").ToList()[1].TextContent;
lesson.lesson2Tag = adressList.Where(p => p.ClassName == "n").ToList()[1].TextContent;
lesson.lesson2TagHref = adressList[1].GetAttribute("href");
}
else if (spanList.Count(p => p.ClassName == "p") == 4 && (spanList.Count(p => p.ClassName == "s") == 2))
{
lesson.lesson2Name = spanList.Where(p => p.ClassName == "p").ToList()[2].TextContent;
lesson.lesson2Place = spanList.Where(p => p.ClassName == "s").ToList()[1].TextContent;
lesson.lesson2Tag = spanList.Where(p => p.ClassName == "p").ToList()[3].TextContent;
lesson.lesson2TagHref = "";
}
仅列表中的索引正在更改。我怎样才能使这更简单?
答案 0 :(得分:1)
从性能和可读性的角度来看,这看起来非常糟糕,因为每次想要了解它时都会遍历整个列表。
你应该尝试像
这样的东西List<YourObject> pList = spanList.Where(p => p.ClassName == "p").ToList();
List<YourObject> sList = spanList.Where(p => p.ClassName == "s").ToList();
if (pList.Count == 2 && sList.Count == 2)
{
lesson.lesson2Name = pList[1].TextContent;
lesson.lesson2Place = sList[1].TextContent;
lesson.lesson2Tag = adressList.Where(p => p.ClassName == "n").ToList()[1].TextContent;
lesson.lesson2TagHref = adressList[1].GetAttribute("href");
}
else if (pList.Count == 4 && sList.Count == 2))
{
lesson.lesson2Name = pList[2].TextContent;
lesson.lesson2Place = sList[1].TextContent;
lesson.lesson2Tag = pList.ToList()[3].TextContent;
lesson.lesson2TagHref = "";
}
答案 1 :(得分:0)
var pList = spanList.Where(p => p.ClassName == "p").ToList();
var sList = spanList.Where(p => p.ClassName == "s").ToList();
if(sList.Count == 2)
{
string name = "";
string tag = "";
string taghref = "";
switch(pList.Count)
{
case 2:
name = pList[1].TextContent;
tag = adressList.Where(p => p.ClassName == "n").ToList()[1].TextContent;
taghref = adressList[1].GetAttribute("href");
break;
case 4:
name = pList[2].TextContent;
tag = pList[3].TextContent;
break;
default:
name = "error";
break;
}
lesson.lesson2Name = name;
lesson.lesson2Place = sList[1].TextContext;
lesson.lesson2Tag = tag;
lesson.lesson2TagHref = taghref;
}
@Crusha K. Rool我按照MethodMan的说法使用了一个switch语句,然后得到了这个。可以做得更好吗?