linq-link关于课程表的问题,要求同样的课连续上,如何修改如下代码?

问题描述

link关于课程表的问题,要求同样的课连续上,如何修改如下代码?
 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Threading.Tasks;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            string[] courses = { ""体育课""体育课""美术课""音乐课""劳动课""语文课""数学课""英语课""};            var result = Enumerable.Range(0 5).Select(_ => Enumerable.Range(0 6).Select(__ => """").ToArray()).ToArray();            while (!result.All(x => x.Contains(""语文课"") && x.Contains(""数学课"") && x.Contains(""英语课"")))            {                var rndseq = Enumerable.Range(0 30).OrderBy(_ => Guid.NewGuid()).Zip(courses (x y) => new { x y }).ToArray();                for (int i = 0; i < 5; i++)                {                    int pos = 0;                    string[] cs = { ""语文课""数学课""英语课"" };                    for (int j = 0; j < 6; j++)                    {                        if (rndseq.Any(x => x.x == i * 6 + j))                            result[i][j] = rndseq.First(x => x.x == i * 6 + j).y;                        else                            result[i][j] = (pos++ < 3) ? cs[pos - 1] : ""自修课"";                    }                }            }            result = result.Select(x => x.OrderBy(y => y == ""自修课"" ? 1 : 0).ThenBy(_ => Guid.NewGuid()).ToArray()).ToArray();            for (int j = 0; j < 6; j++)            {                for (int i = 0; i < 5; i++)                {                    Console.Write(result[i][j] + ""t"");                }                Console.WriteLine();            }        }    }}

解决方案

result = result.Select(x => x.OrderBy(y => y == ""自修课"" ? 1 : 0).ThenBy(_ => Guid.NewGuid()).GroupBy(y => y).SelectMany(y => y).ToArray()).ToArray();

解决方案二:
什么意思???????

解决方案三:
英语课 英语课 体育课 语文课 劳动课
英语课 数学课 语文课 英语课 英语课
语文课 语文课 数学课 数学课 语文课
语文课 自修课 数学课 体育课 音乐课
美术课 自修课 英语课 自修课 数学课
数学课 自修课 自修课 自修课 自修课
Press any key to continue . . .

时间: 2024-10-28 22:29:12

linq-link关于课程表的问题,要求同样的课连续上,如何修改如下代码?的相关文章

new-link关于课程表的问题要求每天都有自修课,请问在如下代码的基础上怎么修改?

问题描述 link关于课程表的问题要求每天都有自修课,请问在如下代码的基础上怎么修改? using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Threading.Tasks; namespace ConsoleApplication1{ class Program { static voi

link生成随机课程表,要求每天6节课

问题描述 link生成随机课程表,要求每天6节课 link生成随机课程表,要求每天6节课,每天都有语文数学英语,总共各7节,体育课2节,美术课1节,音乐课1节,劳动课1节,社会课1节,自然课1节,思想品德课1节,剩下都是自修课. 解决方案 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;using Syste

link关于课程表的问题,如何将产生的课程表转换成DataTable?

问题描述 link关于课程表的问题,如何将产生的课程表转换成DataTable? link关于课程表的问题,如何将产生的课程表转换成DataTable? 解决方案 DataTable dt = new DataTable(); dt.Columns.AddRange(result[0]); foreach (var item in result.Skip(1)) { var row = dt.NewRow(); for (int i = 0; i < 5; i++) row[i] = item[

new-link关于课程表的问题,要求每天自修课放在最后,不要放在中间,请问怎么修改如下代码?

问题描述 link关于课程表的问题,要求每天自修课放在最后,不要放在中间,请问怎么修改如下代码? using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Threading.Tasks; namespace ConsoleApplication1{ class Program { stati

link中如何设置随机数的概率?如何增加随机数的概率?代码怎么写?

问题描述 link中如何设置随机数的概率?如何增加随机数的概率?代码怎么写? link中如何设置随机数的概率?如何增加随机数的概率?代码怎么写? 解决方案 可以产生两个随机数,然后取平均值来改变概率

link下对Collection&amp;amp;lt;T&amp;amp;gt;集合做出的修改,怎么用事件加以处理

问题描述 link下对Collection<T>集合做出的修改,怎么用事件加以处理 link下对Collection集合做出的修改,怎么用事件加以处理?没有CollectionChanged 解决方案 Collection不行,你可以从Collection派生一个集合类,添加上CollectionChanged事件

Linq to XML节点查找删除修改实现代码

本文并不对它的概念进行详细介绍,取而代之的是说说在.Net下怎么去操作XML文件.点一下题外话,XML是标准通用标记语言(SGML)的子集,可以跨平台运行,非常适合Web传输,在不同的编程语言(PHP.Java..Net等)里面都有广泛运用,所以对于XML的操作,将是你必须掌握的一门技术.   下面我们来看看XML文档是长什么样子的,这里将要以下图为例来进行说明.XML可以用来描述数据定义.类型等,它一般是被用作数据存储和数据传输. 图 一   用下面的方法可以生成上面xml的文件,生成一个xm

new-link关于课程表的问题,我想再加一个表头,请问怎么做?

问题描述 link关于课程表的问题,我想再加一个表头,请问怎么做? using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Ma

new-link制作课程表,要求避免早上第一节课是体育课,怎么修改?

问题描述 link制作课程表,要求避免早上第一节课是体育课,怎么修改? using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Threading.Tasks; namespace ConsoleApplication1{ class Program { static void Main(s