我正在尝试使用C#Linq查询Descendants方法使用变量。 这是XML
的一部分<CourseList>
<course id="EM220" name="Fundamentals of Mechanics"/>
<course id="EM305" name="Engineering Tools Seminar"/>
<course id="EM320" name="Dynamics"/>
</CourseList>
以下是查询:
static void GetAllCourseIds(XElement doc)
{
IEnumerable<XElement> courseId =
from ci in doc.Descendants("course") <---want to use a variable
select ci;
foreach (XElement ci in courseId)
Console.WriteLine((string)ci.Attribute("id"));
}
我尝试使用
string c = "course";
然后更换
from ci in doc.Descendants("course")
与
from ci in doc.Descendants(c)
这似乎很容易,但显然不是。
有什么建议吗?
答案 0 :(得分:0)
这应该绝对正常。请注意,这里不需要使用查询表达式 - 您可以使用:
static void GetAllCourseIds(XElement doc, string elementName)
{
IEnumerable<XElement> courseId = doc.Descendants(elementName);
foreach (XElement ci in courseId)
{
Console.WriteLine((string)ci.Attribute("id"));
}
}
如果由于某种原因这对您不起作用,请说明出了什么问题。 (在提问时,总是一个好主意。)