如何获取一个包含字符串中每六(或第n)个字的数组?

时间:2015-08-14 14:25:36

标签: c# arrays

我有一个从文本文件中获取的字符串。该字符串包含大约1200个单词。单词用空格分隔 - 有时是一个空格,有时候不止一个空格。

如何制作一个包含每六个字(或第n个字)的数组。

3 个答案:

答案 0 :(得分:13)

进行拆分,然后按字词索引过滤:

text.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)
    .Where((word, index) => index % 6 == 0)
    .ToArray()

答案 1 :(得分:3)

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();
}

答案 2 :(得分:0)

只需在列表中使用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