拆分和选择特定元素

San*_*San 0 c# linq arrays list

我有一个逗号分隔的字符串,用于指定索引。然后我还有一个逗号分隔的字符串,其中包含所有值。

前任:

  string  strIndexes = "5,6,8,15";
  string  strData =  "ab*bc*dd*ff*aa*ss*ee*mm*jj*ii*waa*jo*us*ue*ed*ws*ra";
Run Code Online (Sandbox Code Playgroud)

有没有办法拆分字符串 strData 并仅选择索引为 5、6、8 或 15 的元素。或者我必须先拆分字符串然后遍历数组/列表,然后再构建一个数组/列表使用字符串 strIndexes 定义的索引处的值(即本例中的 5、6、7、15)

谢谢

Jon*_*eet 5

这相当简单:

var allValues = strData.Split('*')
var selected = strIndexes.Split(',')
                         .Select(x => int.Parse(x))
                         .Select(index => allValues[index]);
Run Code Online (Sandbox Code Playgroud)

您可以从中创建一个列表(通过调用selected.ToList()),或者您可以对其进行迭代。