找出字符串数组中的等于某字符串的所有索引位置
最近一直再用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); } }