我使用下面的LINQ查询使用XML文件来工作..使用如果LINQ查询else语句
XElement rootElement = XElement.Load(@"test.xml");
int StyCode;
var lv1s = from lv1 in rootElement.Descendants("Class")
where lv1.Attribute("Code").Value.Equals("002")
select new
{
Children = from ltd in lv1.Descendants("Subject")
where ltd.Attribute("Course").Value.Equals("Math")
select new
{
****//In This below section need result on condition based... ****
if(StyCode=0)
{
Children1 = ltd.Attribute("AllTeachers").Value.Equals("Y") ? true : false
}
else
{
Children2 = ltd.Attribute("SpeciaGuest").Value.Equals("Y") ? true : ltd.Elements("Topic").Attributes("Code").Where(x => x.Value.Equals("1")).FirstOrDefault() != null ? true : false
}
}
};
下面是我的XML结构..
<?xml version="1.0" encoding="utf-8" ?>
<Document>
<Class Code="001">
<Subject Course="Math" AllTeachers='N' SpeciaGuest='N'></Subject>
<Subject Course="Engish" AllTeachers='Y' SpeciaGuest='Y'></Subject>
<Subject Course="History" AllTeachers='Y' SpeciaGuest='Y'></Subject>
</Class>
<Class Code="002">
<Subject Course="Math" AllTeachers='Y' SpeciaGuest='N'>
<Topic Code="1">LAW1</Topic>
<Topic Code="2">
LAW2
</Topic>
<Topic Code="3">
LAW3</Topic>
</Subject>
<Subject Course="Engish" AllTeachers='Y' SpeciaGuest='Y'></Subject>
<Subject Course="History" AllTeachers='Y' SpeciaGuest='Y'></Subject>
</Class>
</Document>
请让我知道,怎么样我可以使用条件来选择多个选择结果。还让我知道在这个linq查询中使用resharper会好吗?
两者不具有相同的类型。一个是“字符串”,另一个是“布尔”。他们需要有相同的类型才能工作。他们也应该真实地拥有相同的名字,否则你永远无法使用他们中的任何一个。 – Servy
@Servy:修改代码.. – intelliWork
你只解决了我提到的两个问题之一。还要注意,你的if不是基于该项目,而是基于查询范围之外的值,所以只需在查询之外拉出if即可。 – Servy