C# foreach 中获取索引index方法的补充
来源:互联网 发布:2017淘宝售假申诉成功 编辑:程序博客网 时间:2024/06/10 01:35
foreach循环获取索引方法有时是需要的。在网上找到的无一例外是这个:
方法一:
int i = 0;foreach (var item in arr){ i++;}
方法二:
foreach (var item in arr){ int index = arr.indexOf(item); //index 为索引值}
来源:http://www.cnblogs.com/zhyue93/p/foreach.html
第一个没有异议,但是第二个方法,这个对于我遇到的实际是没有作用的。我的是数组
int[] arr = new int[]{ 1, 2, 3, 4, 5, 6,3 };这种你用arr.看智能提示中有没有indexof方法。最后我真的烦了,打算找出可行的方法。经过详细的测试,方法二是有条件的。它的条件就是变量是new List<int>() 这种方式才可以用。具体我做了下测试:这种才可以用arr.IndexOf(item) 形式获取到索引。string str1 = "";var list = new List<int>() { 1, 2, 3, 4, 5, 6 ,2};foreach(var item in list){var index = list.IndexOf(item);str1 += "index:" + index + ",value:" + item + " | ";}EventLog.WriteLog(str1);
输出值:index:0,value:1 | index:1,value:2 | index:2,value:3 | index:3,value:4 | index:4,value:5 | index:5,value:6 | index:1,value:2 |
可看到第二个输出索引是1,而第七个值,由于也是2,与第二个重复,索引输出也是1.
这意味着只有在值不重复的情况下获取的索引才是正确的。
而数组的情况下索引获取不能按第二种方法写。
方法三:int[] arr = new int[]{ 1, 2, 3, 4, 5, 6,3 };string str = "";foreach(var item in arr){var index = Array.IndexOf(arr, item);str += "index:" + index + ",value:" + item + " | ";}EventLog.WriteLog(str);
这是数组情况下索引获取的写法:var index=Array.IndexOf(arr,item);
输出值:index:0,value:1 | index:1,value:2 | index:2,value:3 | index:3,value:4 | index:4,value:5 | index:5,value:6 | index:2,value:3 | 看下输出值,第三个值和第七个值都是3,因此获取到的索引都是2.
这说明这种方法获取的索引也需要在不重复的情况下才能与方法一的相同。
获取索引若在值没有重复的情况下,方法一,方法二,方法三都能正确获取。若有重复,还是需要用方法一才能正确获取。
方法二适用的情况是List类型。方法三适用的类型是数组类型
阅读全文
0 0
- C# foreach 中获取索引index方法的补充
- C# foreach 中获取索引index的方法
- foreach中获取当前索引值
- jquery获取元素索引值index()方法:
- jquery获取元素索引值index()方法
- c:forEach status.index 行索引的使用[转载!]
- C# foreach索引
- C#中foreach的原理
- C#中foreach的使用
- c#中foreach的使用
- C#中foreach的用法
- Smarty中foreach的index、iteration,@count的使用
- Smarty中foreach属性的使用index,last
- Mootools 1.4中取得索引值的方法,类似jquery的Element.index()
- JSTL forEach的索引。。
- C#获取MAC地址的几种方法(补充版)
- C#获取MAC地址的几种方法(补充版)
- C#中Dictionary的foreach使用KeyValuePair
- Android微信之简单文本分享(集成官方SDK-Android Studio)
- JNI入门,使用NDK编写自己的SO库
- 初识python
- 音悦台免积分下载器
- [codevs2192][bzoj1922]大陆争霸
- C# foreach 中获取索引index方法的补充
- 关于用Java实现发送邮件(部分代码参考网络来源)
- 一篇简单的实用的代码,教你如何写GPS
- JAVA面试题
- 最小公倍数之和 V2 51Nod
- CSS 前端框架收集
- 如何列出npm模块所有的历史版本?
- select、poll、epoll之间的区别总结
- ASP.NET WebAPi之断点续传下载(中)