我只想从数组中找到前三个字符的字符串索引

我有一个月的时间

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

08-16 12:36