0

我有两个 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"))

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

4

1 回答 1

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
  };
于 2013-08-15T15:28:02.603 回答