C# 从列表中收集2的所有可能组合

C# 从列表中收集2的所有可能组合,c#,.net,C#,.net,我有一个清单,里面有10个项目。我试图输出到控制台每一个可能的配对2。但它不能与自己配对。例如 1,2 1,3 1,4等 我发现这是为了在列表中找到所有可能的组合。有人能帮我修改一下吗 private static void GetCombination(IList list) { var count = Math.Pow(2, list.Count); for (var i = 1; i <= count - 1; i++)

我有一个清单,里面有10个项目。我试图输出到控制台每一个可能的配对2。但它不能与自己配对。例如 1,2 1,3 1,4等

我发现这是为了在列表中找到所有可能的组合。有人能帮我修改一下吗

    private static void GetCombination(IList list)
    {
        var count = Math.Pow(2, list.Count);
        for (var i = 1; i <= count - 1; i++)
        {
            var str = Convert.ToString(i, 2).PadLeft(list.Count, '0');
            for (var j = 0; j < str.Length; j++)
            {
                if (str[j] == '1')
                {
                    Console.Write(list[j]);
                }
            }
            Console.WriteLine();
        }
    }
private static void getcomposition(IList列表)
{
var count=Math.Pow(2,list.count);

对于(var i=1;i所以如果你有一个1到10的列表,你需要
1,2
1,3
1,4
1,10
-
2,1
2,3
2,10
等等。 您只需使用bubble并检查第一个索引与第二个索引是否不同

欲了解更多信息,请参见以下示例:

List<int> mylist = new List<int>(new int[] { 1,2,3,4,5,6,7,8,9 });
GetCombination(mylist);


private static void GetCombination(IList<int> values)
{
    for (int i = 0; i < values.Count; i++)
    {
        for (int j = 0; j < values.Count; j++)
        {
            if (i != j)
            {
                Console.WriteLine(values[i] + " " + values[j]);
            }
        }
    }
}
List mylist=newlist(newint[]{1,2,3,4,5,6,7,8,9});
GetCombination(mylist);
私有静态void getcomposition(IList值)
{
for(int i=0;i
这是一个非常简单的问题。再加上@FirstOne的答案 您还可以从函数返回包含所有组合的列表: List mylist=newlist(newint[]{1,2,3,4,5,6,7,8,9}); GetCombination(mylist)

公共静态IList GetCombination(IList值)
{
列表_temp=新列表();
for(int i=0;i
使用谷歌看看现在找到解决方案有多容易。我从来没有说过我不知道我发布的代码是做什么的。发布的代码是从一个列表对象获取所有组合。我正在尝试获取X数量的所有组合,即2的成对,因此输出将是…1,2 1,3,1,10您的代码最初将具有给定
var count=Math.Pow(2,list.count)
count的值为
1024.0
,它与任何接近应该做的事情没有任何关系,没有重复的值。
FirstOne
为您提供了一个起点,需要添加1或2个值,希望您能够快速找出需要添加的内容added@Andy如果你觉得自己陷入了困境,试着把它分开将问题分解成步骤,甚至可以一步一步地解决。如果愿意,您可以进行调试。另一个技巧是,无论使用何种编程语言,都要找出您必须执行的操作,然后再编写代码。无论如何,如果这是您要找的答案,请不要忘记接受它并投票表决。
    public static IList<Tuple<int,int>> GetCombination(IList<int> values)
    {
        List<Tuple<int,int>> _temp=new List<Tuple<int, int>>();
        for (int i = 0; i < values.Count; i++)
        {
            for (int j = 0; j < values.Count; j++)
            {
                if (i != j)
                {
                    _temp.Add(Tuple.Create(i, j));
                }
            }
        }
        return _temp;
    }