获取所有可能的参数组合
我有一个包含可能值的参数列表:
// Definition of a parameter
public class prmMatrix
{
public string Name { get; set; }
public List<string> PossibleValues { get; set; }
public prmMatrix(string name, List<string> values)
{
Name = name;
PossibleValues = values;
}
}
//[...]
// List of params
List<prmMatrix> lstParams = new List<prmMatrix>();
lstParams.Add(new prmMatrix("Option A", new List<string>() { "Yes", "No" }));
lstParams.Add(new prmMatrix("Option B", new List<string>() { "Positive", "Negative" }));
我想要所有可能的参数组合,例如:
[Option A:Yes][Option B:Positive]
[Option A:Yes][Option B:Negative]
[Option A:No][Option B:Positive]
[Option A:No][Option B:Negative]
C# 中最好的方法是什么?
I have a list of parameters with possible values :
// Definition of a parameter
public class prmMatrix
{
public string Name { get; set; }
public List<string> PossibleValues { get; set; }
public prmMatrix(string name, List<string> values)
{
Name = name;
PossibleValues = values;
}
}
//[...]
// List of params
List<prmMatrix> lstParams = new List<prmMatrix>();
lstParams.Add(new prmMatrix("Option A", new List<string>() { "Yes", "No" }));
lstParams.Add(new prmMatrix("Option B", new List<string>() { "Positive", "Negative" }));
I would like to have all the combinations of parameters possible, ex.:
[Option A:Yes][Option B:Positive]
[Option A:Yes][Option B:Negative]
[Option A:No][Option B:Positive]
[Option A:No][Option B:Negative]
What's the best way in C# ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
使用递归这非常简单:
This is pretty easy with recursion:
使用
交叉连接
获取数据集之间的笛卡尔积。使用 LINQ 可以非常轻松地完成此任务。例如,这将为您提供所有值的组合。然后您可以对结果集执行任何您想要的操作。
Use a
Cross Join
to get the cartesian product between your data sets. This can be accomplished very easily using LINQ. e.g.This will give you a combination of all values. You can then do whatever you want with the result set.
类别将是您的项目的一个参数,并包含它的所有可能值。
A category would be one parameter of your item, and contain all the possible values for it.
那么递归时间。
Recursion time, then.
我的建议是:
My suggestion is: