如何从字符串中获得一个包含每六个(或第n个)单词的数组

本文关键字:或第 六个 单词 数组 包含每 一个 字符串 | 更新日期: 2023-09-27 18:07:54

我有一个从文本文件中获得的字符串。这个字符串大约包含1200个单词。单词之间用空格分隔——有时一个空格,有时多个空格。

如何创建一个包含每六个单词(或第n个单词)的数组

如何从字符串中获得一个包含每六个(或第n个)单词的数组

进行分割,然后根据单词的索引进行筛选:

text.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)
    .Where((word, index) => index % 6 == 0)
    .ToArray()
private string[] GetWords(string path, int step){
    var words = File.ReadAllText(path).Split(new []{' '}, StringSplitOptions.RemoveEmptyEntries);
    var resultList = new List<string>(words.Length/step);
    for(var i=0; i<words.Length; i+=step)
    {
       var word = words[i];
       resultList.Add(word);
    }
    return resultList.ToArray();
}

使用where linq查询获取列表中索引为mod N的所有单词:

var words = new List<string> {"word1", "word2", "word3", "word4", "word5", "word6"};
var n = 2;
var nthWords = words.Where((word, index) => (index % n) == 0).ToArray();

nthWords现在包含word1 word3 word5