微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用WebService实现从指定数组中选择出任意个元素续

本文是对 用WebService实现从指定数组中选择出任意个元素 一文的补充,添加了重复约束检查功能 

        

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;

namespace RandomWS
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolBoxItem(false)]
    // To allow this Web Service to be called from script,using ASP.NET AJAX,uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {

        [WebMethod]
        public string[] GeneraterandomColourArray(int numberOfRandomColours)
        {
            if (numberOfRandomColours > 13)
                return null;
            string[] colourPalette = { "Red","Blue","White","Black","Green","Yellow","Purple","Pink","brown","Grey","Orange","Cyan","magenta" };
            Random random = new Random();
            string[] arr = new string[numberOfRandomColours];
            bool[] br = new bool[13];//初始值都是false
            for (int j = 0; j < numberOfRandomColours; j++)
            {
               int i = 0;
               bool b = false;
               while (b == false)
               {
                   i = random.Next(0,13);
                   if (br[i] == false)//在br数组中查找br[i]的值是否为false,如果为false,表示i值是第一次得到,如果是true,表示i值已经存在了,就不跳出while循环,继续执行while。
                       b = true;
               }
               br[i] = true;//初次得到i的值时,将br[i]赋值为true。
               arr[j] = colourPalette[i];//取出colourPalette数组中的颜色,放在arr数组中。
            }
            return arr;//返回存放随机找到的颜色的数组arr。
        }
        
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐