如何用字符串求平均值 C#
how to find average with strings c#
我需要将一个变量设置为其他 3 个变量的平均值,这些变量是数字,但它们被设置为字符串。我该怎么做呢?我正在使用 c#、visual studio、windows 表单。
我尝试设置的变量称为 skiTime,我用来获取平均值的变量称为 skiTime1、skiTime2 和 skiTime3。
基本上我需要以下的 C# 版本:skiTime = (skiTime1 + skiTime2 + skiTime3) / 3
我开始的代码(声明?我不知道该用什么词)变量
List<string> skiTime1 = new List<string>();
List<string> skiTime2 = new List<string>();
List<string> skiTime3 = new List<string>();
string skiTime
我设置变量值的代码:
using (StreamReader sr = new StreamReader("pupilSkiTimes.txt"))
{
string line = "";
while ((line = sr.ReadLine()) != null)
{
string[] components = line.Split("~".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
skiTime1.Add(components[2]);
skiTime2.Add(components[3]);
skiTime3.Add(components[4]);
}
sr.Close();
}
我需要在数据网格视图中显示 skiTime1、skiTime2 和 skiTime3,所以如果我没记错的话,我认为它们需要是字符串。 skiTime 只会在另一个计算中使用,所以也许它可以变成一个 int。我真的不知道我在做什么,只是因为教程和帮助才走到这一步。
如果这个问题太令人困惑或没有足够的信息,我可以 post 整个代码。
您需要将 strings
解析为 decimals
然后计算平均值:
List<decimal> avgTime = new List<decimal>();
for (var i = 0; i < skiTime1.Length; i++) {
var avg = (decimal.Parse(skiTime1[i]) + decimal.Parse(skiTime2[i]) + decimal.Parse(skiTime3[i])) / 3;
avgTime.Add(avg);
}
public string CalculateAverage(List<string> skiTime1, List<string> skiTime2, List<string> skiTime3)
{
List<string> allValues = new List<string>();
allValues.AddRange(skiTime1);
allValues.AddRange(skiTime2);
allValues.AddRange(skiTime3);
float totalcount = 0;
float average = 0;
foreach (var value in allValues)
{
totalcount = totalcount + float.Parse(value);
}
average = totalcount / allValues.Count();
return average.ToString();
}
返回平均值的函数 现在调用你需要的函数:
string skiTime = CalculateAverage(skiTime1, skiTime2, skiTime3);