在c#中,我如何计算字符串数组的每个索引中的单词数?

时间:2012-06-08 07:25:52

标签: c# arrays string count split

例如,我有一个文本文件,我已经放入一个数组然后我已经完全停止分割该数组(因此每个句子都在它自己的新数组的索引中)使用以下内容:< / p>

textSplitArray = textArray[j].Split('.');

然后我如何计算textSplitArray的每个索引中的单词数来确定哪个句子的单词最多?是可以这样做还是我必须以另一种方式做到这一点?

我尝试过到处寻找,但似乎无法找到答案

4 个答案:

答案 0 :(得分:1)

如果您想知道哪个句子最长(即包含最多单词),请使用

var result = textSplitArray.OrderByDescending(x => x.Split(' ').Length)
                           .FirstOrDefault();

如果您想知道该最长句子中的单词数量,请使用

int Max = textSplitArray.Max(x => x.Split(' ').Length);

OR

int Max = result.Length;

由于句子中的每两个单词可以用空格分隔,这就是我根据' '空格分割每个句子的原因。

答案 1 :(得分:1)

string[] textSplitArray = textArray[j].Split('.');
        foreach (string s in textSplitArray)
        {
            int NumberOfWords = s.Split(' ').Length;                
        }

答案 2 :(得分:0)

你可以像这样使用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.

检查是否有帮助。

答案 3 :(得分:0)

 string[] source = textSplitArray.Split(new char[] { '.', '?', '!', ' ', ';', ':', ',' }, StringSplitOptions.RemoveEmptyEntries);

source.Length()是你的计数。