Net Core教程

c#: 遍历列中列表诸项组合

本文主要是介绍c#: 遍历列中列表诸项组合,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

应用场景:诸文件夹中视频合并,每个文件夹中取一个,找所有可用的组合。

网上找遍,未得所需,写其算法。

模型:以List<List<string>>模拟,代码如下:

        static void Main(string[] args)
        {
            string s = string.Empty;
            List<List<string>> lists = new List<List<string>>();
            var l1 = new List<string>() { "1", "2", "3", "4" };
            var l2 = new List<string>() { "5", "6" };
            var l3 = new List<string>() { "7", "8", "9", "0" };
            var l4 = new List<string>() { "a", "b", "c"};
            lists.Add(l1);
            lists.Add(l2);
            lists.Add(l3);
            lists.Add(l4);

            var lc = 1;
            foreach (var list in lists)
                lc *= list.Count;
            for (int i = 0; i <= lc - 1; i++)
            {
                s = string.Empty;
                for (int j = 0; j <= lists.Count - 1; j++)
                {
                    var list = lists[j];
                    int multi = 1;
                    for (int k = j + 1; k <= lists.Count - 1; k++)
                        multi *= lists[k].Count;
                    int index = (i / multi) % list.Count;
                    s += list[index] + ",";
                }
                Console.Write(s.Trim(',') + "    ");
                if ((i + 1) % 8 == 0)
                    Console.Write("\r\n");
            }

            Console.ReadLine();
        }

输出如下:

 

所得满足需求。贴之,聊作备忘~

这篇关于c#: 遍历列中列表诸项组合的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!