找出字符串数组中的等于某字符串的所有索引位置

最近一直再用Linq,所以这个问题想先用Linq实现,再用一般的方法实现。

1、用Linq实现的代码是:

Enumerable的Range方法有两个参数,第一个是数据序列的开始大小int start,第二个是数据序列的长度int count

string[] strtemp = new string[] { "P", "B", "B", "P", "B", "B", "B" };
            const string temp = "P";
            var list = from index in Enumerable.Range(0, strtemp.Length)  //构建从0到strtemp.Length-1的序列。
                       where strtemp[index] == temp                       //如果在索引index处的值相等,就获取索引。
                       select index;

            foreach (var i in list) {
                Console.WriteLine(i);
            }

 

输出为:0

    3

 2、用原始方法的是现实:

 

       List<int> listtemp = new List<int>();//获取位置
            for (int i = 0; i < strtemp.Length; i++)
            {
                if (strtemp[i] == "P")
                {
                    listtemp.Add(i);
                }
            }

 

posted @ 2014-03-25 22:30  荣码一生  阅读(1480)  评论(0编辑  收藏  举报