c# - 在 c# 中的 linq-to-xml 中的 'and' 和 'or' 过滤器之间更改

标签 c# filter linq-to-xml

是否可以在 linq-to-xml 中将过滤器约束设置为“OR”?我遍历一个数组以像这样过滤所需的值:

XElement root = XElement.Load(fileName);
IEnumerable<XElement> selectedElements = root.Elements("OrderNum").Elements("Job");

for (int i = 1; i < chkBx.Count(); i++)
{
    if (chkBx[i].Checked == true)
    {
        string element = "Diameter";
        string match = chkBx[i].Text;
        selectedElements = selectedElements.Where(el => (string)el.Parent.Element(element) == match);
    }
}

现在过滤器将有点与“AND”语句链接在一起。如果我想选择一个满足这些过滤条件的元素怎么办?

最佳答案

var filters = chkBx.Where(r => r.Checked).Select(r => r.Text).ToList();
selectedElements = selectedElements.Where(r =>
      filters.Contains((string)r.Parent.Element(element)))

关于c# - 在 c# 中的 linq-to-xml 中的 'and' 和 'or' 过滤器之间更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6289489/

相关文章:

c# - visual studio 正在运行,但本地主机无法连接

r - 计算满足 "less than"过滤器值序列的行数

android - 过滤后的 ListView 未更新

c# - LINQ to XML 可选元素查询

c# - linq to xml 性能

.net - 性能:XmlReader 或 LINQ to XML

c# - 基本继承错误,哪些参数?

c# - 检测在 C# 中运行的平台代码?

c# - 默认(结构) - 良好的风格?

servlets - 在 Servlet 过滤器中设置响应代码