我有一个从文本文件中获取的字符串。该字符串包含大约1200个单词。单词用空格分隔 - 有时是一个空格,有时候不止一个空格。
如何制作一个包含每六个字(或第n个字)的数组。
答案 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