查找包含逗号分隔值的字符串数组中的项目索引

时间:2017-03-14 08:17:40

标签: c# linq

下面是我的字符串数组:

string[] arr = { 
                 "region1.mp3,region1-sub.mp3,region1-sub1.mp3,region2-sub.mp3", 
                 "region2.mp3,region2-Sub1.mp3",
                 "region3.mp3" 
               };

以下是我想要在字符串数组上方搜索并获取索引的值:

string searchItem = "region1-sub1.mp3";

这是我尝试搜索的方式,但得到-1(-1表示我发现找不到搜索):

int index = Array.FindIndex(arr, t => t == searchItem); // -1

我理解,因为我在字符串数组中的记录是逗号分隔的,这就是为什么这个搜索失败了。

那么任何其他方法可以帮助我找到索引而不循环并生成新的字符串数组?

  

预期输出:0

3 个答案:

答案 0 :(得分:3)

您希望用逗号分隔每个字符串:

int index = Array.FindIndex(arr, t => t.Split(',').Contains(searchItem)); 

即使字符串不包含逗号,也能正常工作。

答案 1 :(得分:2)

这将为您提供所需的输出。

int index = Array.FindIndex(arr, t => t.Contains(searchItem));

答案 2 :(得分:1)

int index = Array.FindIndex(arr, t => t.Contains(searchItem));

返回0。