C# 练习 - 在阵列中找出连续重複出现项目(参考黑大使用yield return方式)

想法来源:

拜读黑暗执行绪使用yield return方式后,想说自己可以练习不用yield return的方式暴力破解看看,并记录自己解题过程。

题目:

从阵列 [A, B, B, C, X, C, C, B, B, D, D, D] 挑出 [B, B][C, C][B, B][D, D, D] 四个群组。

程式码(使用LINQPad):

var raw = "A,B,B,C,X,C,C,B,B,D,D,D".Split(','); //测试资料var tempList = new List<string>() { raw.First() }; //把第一个字元塞进tempList,当作下一个比较基準var outputList = new List<string>(); //最后显示的listforeach(var item in raw.Skip(1)) //从第二个字元开始(因为第一个字元已经塞进tempList){if (tempList.Last() == item)        {            tempList.Add(item);        }else{            if (tempList.Count() > 1) //有两个以上相同的字元就存进outputList                outputList.AddRange(tempList);            tempList.Clear(); //清空tempList            tempList.Add(item); //再把目前字元存在tempList,当作下一个比较基準}}    if (tempList.Count() > 1) //有两个以上相同的字元就存进outputList        outputList.AddRange(tempList);outputList.Dump("outputList");

结果:

http://img2.58codes.com/2024/20129970QWOzWvAWkA.jpg

参考资料来源:
黑暗执行绪 C# 练习 - 在阵列中找出连续重複出现项目


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章