是否有可能在另一次加入之前分解元素本身?

时间:2013-08-15 15:13:55

标签: linq linq-to-xml

我有两个xml文档,简化为

  <NumSetA>
    <num Operation="+/-">1</num>
    <num Operation="+">3</num>
    <num Operation="+/*">4</num>
  </NumSetA>

  <NumSetB>
    <num>2</num>
    <num>9</num>
  </NumSetB>

我想将NumSetA与NumSetB一起加入Operation标签中所述的可能操作,即。 1 + 2,1-2,1 + 9,1-9,3 + 2,3 + 9,4 + 2,4 + 9,4 * 2,4 * 9 通过使用string.split('/')

我想做的是

var CrossJoin = SetA.Elements("num").join(this.attribute("Operation").value.split('/'), 
                                          .join(SetB.Elements("num"))

抱歉有创造力。希望你明白我在说什么。 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

使用查询语法非常容易:

var crossJoin =
  from numA in SetA.Elements("num")
  from op in numA.Attribute("Operation").value.split('/')
  from numB in SetB.Elements("num")
  select new {
    a = numA.value,
    op,
    b = numB.value
  };
相关问题