如何从文本文件中引入数字并在c#中对其进行数学运算?

本文关键字:运算 文本 文件 数字 | 更新日期: 2023-09-27 18:12:46

我是c#新手。我试图把数字从一个txt文件到我的程序和乘它们。文本文件的格式如下:

1
2
3
4
5
6
7
8
9
10

我需要这个程序做1x2x3x4x5x6x7x8x9x10=3628800

这是一个包含200万个不同数字的列表。

我可以让它输出到一个文本文件,只是不输入。我四处找了找,却找不到答案。

谢谢。

如何从文本文件中引入数字并在c#中对其进行数学运算?

只需几行代码就可以完成。

var lines = File.ReadLines(fileName);
var collection = new List<int>();
foreach (var line in lines)
{
   collection.AddRange(line.Split(' ').Select(n => Convert.ToInt32(n)));  
}
var result = collection.Distinct().Aggregate((i, j) => i * j); // remove distinct if you don't want eliminate duplicates.

你可以试试这个

string value1 = File.ReadAllText("file.txt");
int res = 1;
var numbers = value1.Split(' ').Select(Int32.Parse).ToList();
for(int i=0;i<numbers.Count;i++)
{
    res = res * numbers[i];
}
Console.WriteLine(res);
var numbers = File.ReadAllText("filename.txt").Split(' ').Select(int.Parse); // Read file, split values and parse to integer
var result = numbers.Aggregate(1, (x, y) => x * y); // Perform multiplication

您想将200万个数字相乘,但是有一个问题。

问题是内存限制。为了保存一个大的数字,你必须在System.Numerics命名空间内使用BigInteger类。

您可以通过在项目顶部添加Using关键字来使用此参考。

using System.Numerics;

如果编译器不识别Numerics,则需要添加System.Numerics.dll的汇编引用。

你的代码应该是这样的:

string inputFilename = @"C:'intput.txt"; // put the full input file path and name here.
var lines = File.ReadAllLines(inputFilename); // put text lines into array of string.
BigInteger big = new BigInteger(1); // create the bigInt with value 1.
foreach (var line in lines) // iterate through lines
{
    big *= Convert.ToInt32(line); // Multiply bigInt with each line.
}
string outputFilename = @"C:'output.txt"; // put the full output file path and name here
File.WriteAllText(outputFilename, big.ToString()); // write the result into text file

这可能需要很长时间才能完成。但这一切都取决于运行的硬件。在此任务期间,您可能会遇到内存溢出异常,这取决于您拥有的内存量。