c# – 如何获取数组的所有子集?
发布时间:2020-12-15 04:00:23 所属栏目:百科 来源:网络整理
导读:给定一个数组:[狗,猫,老鼠] 什么是最优雅的方式来创建: [,][,mouse][,cat,mouse][dog,][dog,mouse] 我需要这个工作任何大小的阵列. 这本质上是一个二进制计数器,其中数组索引表示位.这可能让我使用一些按位操作来计数,但是我看不到一个很好的方法来将其转
给定一个数组:[狗,猫,老鼠]
什么是最优雅的方式来创建: [,] [,mouse] [,cat,mouse] [dog,] [dog,mouse] 我需要这个工作任何大小的阵列. 这本质上是一个二进制计数器,其中数组索引表示位.这可能让我使用一些按位操作来计数,但是我看不到一个很好的方法来将其转换为数组索引. 解决方法string[] source = new string[] { "dog","cat","mouse" }; for (int i = 0; i < Math.Pow(2,source.Length); i++) { string[] combination = new string[source.Length]; for (int j = 0; j < source.Length; j++) { if ((i & (1 << (source.Length - j - 1))) != 0) { combination[j] = source[j]; } } Console.WriteLine("[{0},{1},{2}]",combination[0],combination[1],combination[2]); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |