0

假设我想获取用户在控制台中输入的所有数字。

15,30 45

然后我想将数字的“字符串”拆分为不同的子字符串,并将其存储到字符串数组或字符串类型列表中。我也想获得最大最小平均值和总数。

  1. 我应该将子字符串存储在数组还是通用列表中?我更喜欢将它存储在一个列表中,这样我就可以使用 list.avg 和 list.sum 获得平均值和总数

  2. 为了获得最大最小平均值和总和,我应该将每个元素转换为整数还是将整个列表转换为另一种类型?如果是这样,我该如何转换?

编辑:如果他以某种方式混合了字母或符号,有什么方法可以让用户编辑数字?

4

2 回答 2

0

int[]首先,如果它是 a而不是List<int>sinceEnumerable.SumEnumerable.Average采用,您还可以获得平均或总和IEnumerable<T>。因此,决定取决于您之后是否需要修改集合。您想稍后添加或删除项目吗?然后使用泛型List<T>.

string input = "15,30 45";
int i = int.MinValue;
List<int> result = input.Split(new[]{' ', ','}, StringSplitOptions.RemoveEmptyEntries)
    .Where(str => int.TryParse(str, out i))
    .Select(str => i)
    .ToList();
double avg = result.Average();
int sum =  result.Sum();
于 2013-10-30T09:26:16.697 回答
0

您可以尝试使用此代码

void Main()
{
    double temp;
    List<double> input = new List<double>();
    string line = Console.ReadLine();
    string[] parts = line.Split(' ');
    foreach(string p in parts)
    {
        if(double.TryParse(p, out temp))
            input.Add(temp);
    }

    double sum = input.Sum();
    Console.WriteLine(sum);
}

在这里,我从 Console.ReadLine 获取输入并在空格分隔符处拆分行。每个 line 子部分都转换为 double 值(仅当可以根据您的语言环境设置转换为 double 时)并添加到List<double>. 至此真的很简单就可以获取到你需要的信息了(IEnumerable.Sum, IEnumerable.Average等..)

于 2013-10-30T09:22:07.890 回答