我想构建一个查询构建器,用户可以在其中输入不同的条件,例如" ID> 10" " AND ID< 40&#34 ;.
用户也可以选择他想要显示的不同xml元素。例如,他可以选择显示ID元素和Code元素。
我有两个列表,一个用于用户选择的过滤器,另一个用于他想要显示的元素。我的问题是我不知道如何添加逻辑运算符,如"&&"和" ||"到linq where子句。
此外,我不知道如何动态生成select语句以仅包含用户选择的字段。
这是我到目前为止所做的:
XDocument doc = XDocument.Load(xmlFile);
var query = doc.Descendants("STUDENT");
// iterate through all the where conditions and add them to linq query
foreach(WhereConditions wcon in whereConditions)
{
query = query.Where(x => (int)x.Element(wcon.SELECTEDFIELD) > Int32.Parse(wcon.COMPARISONVALUE));
}
foreach(string selectedColumns in selectedFields)
{
XElement x;
x = doc.Root.Element("STUDENTS").Element("STUDENT");
query = query.Select(x =>(new {selectedColumns = x.Element(selectedColumns).Value}));
}