var A = new[] {A, B};
var B = new[] {X, Y, Z};
var Product =
from _A in A
from _B in B
select new[] { _A, _B };
//Intent below:
foreach (pair in Product)
{
SomeFunction(pair[0],pair[1])
}
//Output:
SomeFunction(A,X)
SomeFunction(A,Y)
SomeFunction(A,Z)
SomeFunction(B,X)
SomeFunction(A,Y)
SomeFunction(A,Z)
如何将两个列表合并为一个项目,而不是将_A和_B检索为自变量?这样,对于每个笛卡尔叉积组合(A,X..A,Y..A,Z等),我都可以将它们发送到另一个函数中进行处理?
理想情况下,这些变量将不是字符串,因此任何获取字符@索引的解决方法都将无效。
编辑: 看起来我一直都是对的。感谢社区确认我的意图。
答案 0 :(得分:-1)
我认为您在那里95%,将您的榜样放在一起,您在那里99%。
您的查询将为您提供所需的笛卡尔积。
var A = new[] {A, B};
var B = new[] {X, Y, Z};
var Product = from _A in A
from _B in B
select new[] { _A, _B };
Product
现在是IEnumerable<T>
。看起来像这样:
[
[A, X]
[A, Y]
[A, Z]
[B, X]
[B, Y]
[B, Z]
]
您现在要做的就是枚举它的值,这是您的意图(尽管变量名错误):
//Intent below:
foreach (pair in Product)
{
SomeFunction(pair[0], pair[1]);
}