本文是对 用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] 举报,一经查实,本站将立刻删除。