计算数组中的出现次数已完全填充除了最后5个为空的元素外,没有空值。这是我的代码。我是第一次使用字典,所以我可能在某处有一些逻辑错误。我正在阅读一个文本文件。字符串[]arr1=新字符串[200];StreamReadersr=newStreamReader("newWorkSheet.txt");字符串Templine1="";整数计数器=0;while(Templine1!=null){Templine1=sr.ReadLine();arr1[计数器]=Templine1;计数器+=1;}sr.Close();//字典,键是列表中的数字,关联的值是找到键的次数Dictionaryoccurrences=newDictionary();//循环测试数据foreach(stringvalueinarr1){if(occurrences.ContainsKey(value))//检查我们是否在{//Key存在之前找到了这个key。将此键的出现次数加上一次出现[值]++;}else{//这是一个新键所以添加它。数字1表示此键已找到一次occurrences.Add(value,1);}}//转储结果System.IO.StreamWritersr2=newSystem.IO.StreamWriter("OrganizedVersion.txt");foreach(stringkeyinoccurrences.Keys){sr2.WriteLine("Integer"+key.ToString()+"wasfound"+occurrences[key].ToString()+"次");}sr2.Close();控制台.ReadLine();编辑:我把所有的代码都放在这里,包括这不完全是你的问题的声明,但Linq可以减少这里的行数:vargroups=arr1.GroupBy(item=>item);foreach(vargroupingroups){Console.WriteLine(string.Format("{0}occurrencesof{1}",group.Count(),group.Key);}我的钱在arr1上是空的(基于你应该提前知道大小,但你在文件中填充可能会改变的行。好消息是你实际上并不需要它。替换这个:foreach(arr1中的字符串值)......用这个:foreach(StringvalueinFile.ReadLines("fileName")){}MSDNFile.ReadLines"arr1iscompletelyfilledwithnonullvalues"Nope.放入数组的最后一项为空。在将其放入之前检查值数组:while(true){Templine1=sr.ReadLine();if(Templine1==null)break;arr1[counter++]=Templine1;}或者如果你更喜欢这种方法:while((Templine1=sr.ReadLine())!=null){arr1[counter++]=Templine1;}现在,不是遍历整个数组,而是循环到索引计数器,无论你放入多少项:for(inti=0;iintheloopyou需要在foreach(stringvalueinarr1){if(!string.IsNullOrEmpty(value)){.......这将解决你在文件中可能遇到的问题。以上就是C#学习教程:计算Array出现的次数,分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注---本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处:
