You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已判断字符串含列表元素,如何获取该元素在列表中的索引?

获取匹配元素在列表中的索引

可以用以下几种方式实现:

方法1:使用List.FindIndex方法

如果只需要第一个匹配元素的索引,直接用FindIndex最简洁:

// 假设abc是List<string>类型
int matchIndex = abc.FindIndex(s => def.Contains(s));
  • 找到匹配元素时返回对应非负索引;无匹配时返回-1。

方法2:遍历列表并记录索引

如果需要同时获取匹配元素和索引,可结合Enumerable.Select遍历:

var matchInfo = abc.Select((item, index) => new { Item = item, Index = index })
                   .FirstOrDefault(x => def.Contains(x.Item));

if (matchInfo != null)
{
    int index = matchInfo.Index;
    string matchedItem = matchInfo.Item;
    // 执行后续逻辑
}
  • 该方法返回第一个匹配的元素及其索引,无匹配时matchInfo为null。

方法3:获取所有匹配元素的索引

如果列表中有多个元素能被字符串包含,想要获取全部索引:

List<int> allMatchIndices = abc.Select((item, index) => new { Item = item, Index = index })
                               .Where(x => def.Contains(x.Item))
                               .Select(x => x.Index)
                               .ToList();
  • 结果是包含所有匹配索引的列表,无匹配则为空列表。

注意事项

  • 确保abc是支持索引访问的集合(如List<T>、数组),以上方法均适用。
  • def.Contains(s)默认区分大小写,如需忽略大小写,可替换为def.IndexOf(s, StringComparison.OrdinalIgnoreCase) >= 0。

内容的提问来源于stack exchange,提问作者qatestprofile

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 03:30:50