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

如何从C#列表中获取多个非连续元素?求更简洁实现方案

问题分析与简洁实现

首先你的代码存在一个明显错误:第二个foreach循环中,i是valores列表中的字符串元素,而非索引值,因此valores[i]会触发编译错误——无法将string类型隐式转换为int类型的索引。正确的写法应该是直接输出i:

foreach (var item in valores)
{
    Console.WriteLine(item);
}

如果想要更简洁的实现,推荐使用LINQ(需要引入System.Linq命名空间),一行代码就能完成目标:

using System.Linq;

List<string> listaStr = new List<string> {"cero","uno","dos","tres","cuatro"};
List<int> indices = new List<int> {0,4};

// 直接通过索引筛选出目标元素,类型保持为List<string>,更安全
var valores = indices.Select(idx => listaStr[idx]).ToList();

// 输出结果
foreach (var item in valores)
{
    Console.WriteLine(item);
}

优势说明

  • 类型安全:无需使用List<object>,直接保留string类型,避免后续类型转换问题
  • 代码简洁:用LINQ的Select方法替代手动循环添加元素,逻辑更清晰
  • 可读性高:一行代码就能表达“根据索引列表提取对应元素”的核心逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:35:35