我只想从数组中找到前三个字符的字符串索引
我有一个月的时间
string[] arrayEnglishMonth = { "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER" };
如果我写
int t_ciMonth=8;(AUGUST)
int pos = Array.IndexOf(t_caMonth, arrayEnglishMonth[t_ciMonth - 1]);
但是,如果我只希望索引的前3个字符即AUG如何找到它?
最佳答案
您可以想到两种选择:Linq
只有这样的方法:
var index = arrayEnglishMonth.Select((v, i) => new { v, i })
.Where(c => c.v.StartsWith("AUG"))
.Select(c => c.i)
.First();
这将首先遍历现有数组,创建具有值和索引的匿名对象的可枚举,在
Where
中传递的谓词返回true,然后仅选择索引并从可枚举中获取第一个元素。Demo
使用
Linq
查找相应的月份,然后使用IndexOf
方法:var item = arrayEnglishMonth.First(c => c.StartsWith("AUG"));
var index = Array.IndexOf(arrayEnglishMonth, item);
Demo