例如,我有一个文本文件,我已将它放入一个数组中,然后我使用以下命令将该数组按句号拆分(因此每个句子都在新数组的自己的索引中):
textSplitArray = textArray[j].Split('.');
然后我将如何计算 textSplitArray 的每个索引中的单词数以确定哪个句子的单词最多?有可能做到这一点还是我必须以另一种方式做到这一点?
我试过到处搜索,但似乎找不到答案
如果您想知道哪个句子最长(即包含最多单词),请使用
var result = textSplitArray.OrderByDescending(x => x.Split(' ').Length)
.FirstOrDefault();
如果您想知道最长句子中的单词数,请使用
int Max = textSplitArray.Max(x => x.Split(' ').Length);
或者
int Max = result.Length;
由于句子中的每两个单词都可以用空格分隔,这就是我根据' '
空格分隔每个句子的原因。
string[] textSplitArray = textArray[j].Split('.');
foreach (string s in textSplitArray)
{
int NumberOfWords = s.Split(' ').Length;
}
你可以像这样使用 lambda 表达式:
var max = textSplitArray.Select((s,i) =>
{
return new { value = s.Split(' ').Count() , index = i};
}).OrderByDescending(item=>item.value).FirstOrDefault();
int maxValue = max.value;
int maxPos = max.index;
//this will return anonymous object that has two properties : {index , value} that refers to item's value and it's position in the sequence.
检查是否有帮助。
string[] source = textSplitArray.Split(new char[] { '.', '?', '!', ' ', ';', ':', ',' }, StringSplitOptions.RemoveEmptyEntries);
source.Length()
是你的计数。