首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

net 或sql解决办法

2013-03-21 
net 或sql需要进行任务的分配如 有任务量 string formid123456,654789,4569,87954,65446 //任务的id人

net 或sql
需要进行任务的分配 
 如 有任务量 string formid="123456,654789,4569,87954,65446"; //任务的id
   人员 string agetid="123,456,789,741,852"; //坐席的工号
   还有一个是分配的量, 
   int num   这个是自己输入的
     如果输入 是 2   任务的量有五个  5%2=1 余数去掉, 只去整,就将任务分给前两个坐席 “123”和“456”这两个每人两个任务  如果输入为5 则是每一个人一个任务 net c# 和sql  都行, sql可以以存储过程形式
希望大家帮忙,有用信息,给全分。
    sql c# 分配
[解决办法]


class Program
    {
        static void Main(string[] args)
        {
            string formid = "123456,654789,4569,87954,65446";
            string agetid = "123,456,789,741,852";
            int task_nums = Regex.Matches(formid, ",").OfType<Match>().Count() + 1;
            int aget_nums = Regex.Matches(agetid, ",").OfType<Match>().Count() + 1;
            Console.WriteLine("请输入任务量");
            int task_auto = Convert.ToInt32(Console.ReadLine());
            int peo = GetPer(task_nums, aget_nums, task_auto);
            agetid.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Take(peo).ToList().ForEach(x => Console.WriteLine(x));
            Console.Read();
        }

        static int GetPer(int task_nums, int aget_nums, int task_auto)
        {
            int res = 0;
            for (int i = 0; i < aget_nums; i++)
            {
                if ((i + 1) * task_auto <= task_nums)
                {
                    res++;
                }
                else
                {
                    break;
                }
            }


            return res;
        }
    }


[解决办法]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string formid = "123456,654789,4569,87954,65446"; //任务的id
            string agetid = "123,456,789,741,852"; //坐席的工号
            int n = formid.Split(',').Count() / int.Parse(Console.ReadLine());
            var query = formid.Split(',').Select((x, i) => new { x, i })
                .GroupBy(x => x.i / n)
                .Select(x => new { aget = agetid.Split(',').Select((z, i) => new { z, i }).Where(a => a.i == x.Key).First().z, tasks = x.Select(y => y.x) });
            foreach (var item in query)
            {
                Console.WriteLine("{0}: {1}.", item.aget, string.Join(",", item.tasks));
            }
        }
    }
}

[解决办法]
看了楼上答案路过路过

热点排行