2

たとえば、配列に入れたテキストファイルがあり、その配列をピリオドで分割しました(したがって、各文は新しい配列の独自のインデックスにあります)。

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

次に、textSplitArrayの各インデックスの単語数をカウントして、どの文に最も多くの単語が含まれているかを判断するにはどうすればよいですか?これを行うことは可能ですか、それとも別の方法で行う必要がありますか?

どこでも検索してみましたが、答えが見つからないようです

4

4 に答える 4

2

どの文が最も長いか(つまり、最大の単語が含まれている)を知りたい場合は、

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

そして、その最長の文の単語数を知りたい場合は、

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

また

int Max = result.Length;

文中の2語ごとにスペースで区切ることができるので、スペースに基づいて各文を分割しました' '

于 2012-06-08T07:27:42.107 に答える
1
string[] textSplitArray = textArray[j].Split('.');
        foreach (string s in textSplitArray)
        {
            int NumberOfWords = s.Split(' ').Length;                
        }
于 2012-06-08T10:29:25.320 に答える
0

あなたはこのようなランバダ式を使うことができます:

 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.

それが役立つかどうかを確認してください。

于 2012-06-08T07:36:15.747 に答える
0
 string[] source = textSplitArray.Split(new char[] { '.', '?', '!', ' ', ';', ':', ',' }, StringSplitOptions.RemoveEmptyEntries);

source.Length()あなたの数です。

于 2012-06-08T07:37:20.987 に答える