求一个队列数据重新排列的问题,在线等

zoujiaming 2013-03-16 01:54:44
假设我现在有两种对象,对象类型为N和C,排入一个数组中。现在要求对数据中的数据进行重新排列,要求是遇到类型为N的数据,可以为一排,但一排中对象最多不可以超过三个,超过的话就重新起一排(不可以颠倒排列的顺序)。遇到类型为C的数据,独占一排。请给出具体实现。示意图见下
...全文
261 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoujiaming 2013-03-16
  • 打赏
  • 举报
回复
引用 3 楼 gxingmin 的回复:
你定义List,按上面的循环,把每一行加到一个List里
新创建对象就搞不定了,因为是不定长的,上图中五个对象的例子不一定是多少个对象和如何种重复方式,只举了个最少的例子
zoujiaming 2013-03-16
  • 打赏
  • 举报
回复
也就是说把排列好的数据,统一存入一个对象,再统一输出成指定格式
gxingmin 2013-03-16
  • 打赏
  • 举报
回复
你定义List,按上面的循环,把每一行加到一个List里
zoujiaming 2013-03-16
  • 打赏
  • 举报
回复
引用 1 楼 gxingmin 的回复:
C# code?12345678910111213141516171819202122int nCount=0;for(int i=0;i<arry.Length;i++){ if(arry[i].Type=="N") //N { nCount++; Console.Write(arry[i].Name); //输出N ……
谢谢你的回复,如果要求N和C重新排列后,每创建一行,就存入新创建行的对象数组里,请问如何修改?
gxingmin 2013-03-16
  • 打赏
  • 举报
回复
int nCount=0;
for(int i=0;i<arry.Length;i++)
{
    if(arry[i].Type=="N") //N
    {
       nCount++;     
        Console.Write(arry[i].Name);  //输出N
       if(nCount==3)
       {
           Console.Write("\r\n"); //新行
             nCount=0;           
       }  
    }
    else  //C
    {
        if(nCount>0)
          Console.Write("\r\n"); //新行
          Console.Write(arry[i].Name);  //输出C
        Console.Write("\r\n"); //新行
         nCount=0;  
    }
}

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧