C# 计算字符串中的平均字母数

C# 计算字符串中的平均字母数,c#,.net,string,average,C#,.net,String,Average,我需要根据用户输入计算每个单词中的平均字母数。但我不知道怎么做。我知道我需要找到字母总数,然后除以 private void button1_Click(object sender, EventArgs e) { var wordCount = countMethod(textBox1.Text); MessageBox.Show(wordCount.ToString()); } private int countMethod(string input) { var se

我需要根据用户输入计算每个单词中的平均字母数。但我不知道怎么做。我知道我需要找到字母总数,然后除以

private void button1_Click(object sender, EventArgs e)
{
    var wordCount = countMethod(textBox1.Text);
    MessageBox.Show(wordCount.ToString());
}
private int countMethod(string input)
{
    var separators = new[] { ' ', '.' };
    var count = input.Split(separators, StringSplitOptions.RemoveEmptyEntries).Length;
    return count;
}

您可以使用LINQ
Average
来执行此操作

private double AverageWordLetter(string input)
{
    var separators = new[] { ' ', '.' };
    var average = input.Split(separators, StringSplitOptions.RemoveEmptyEntries)
          .Select(x=>x.Length).Average();
    return average;
}
你可以这样做

var separators = new[] { ' ', '.' };
var words = input.Split(separators, StringSplitOptions.RemoveEmptyEntries);

decimal avg = words.Count() ==0? 0: (decimal) words.Sum(s=>s.Length)/(decimal)words.Count();
或者,正如
@dotctor
在评论中建议的那样,我们可以简单地使用
平均值
扩展名

var separators = new[] { ' ', '.' };
var words = input.Split(separators, StringSplitOptions.RemoveEmptyEntries);
var avg = words.Select(s=>s.Length).Average();

你所说的平均字母是什么意思?每个字母的平均数量word@Sam请编辑您的问题以反映这一点-平均字母数(无意义)和平均字母数之间存在差异。对于拆分后收到的每个字符串,只需将长度放入列表中,然后调用
.average()
(LINQ)或者也可以使用,不需要将总和和计数都转换为十进制。您可以删除其中一个。