如何用字符串求平均值 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);