c# - 数据表中的复数

标签 c# complex-numbers

我将复数(实数、虚数)添加到数据表中,然后需要进行一些数学计算。

比方说:

DataTable dtB_01 = new DataTable();
dtB_01.Columns.Add("d1");
dtB_01.Columns.Add("d2");
dtB_01.Columns.Add("d3");
dtB_01.Columns.Add("d4");

DataRow bRow;
bRow = dtB_01.NewRow();
dtB_01.Rows.Add(bRow);
bRow["d1"] = new Complex(double.Parse("6"), double.Parse("2"));
bRow["d2"] = new Complex(double.Parse("8"), double.Parse("3")); 
bRow["d3"] = Complex.Subtract((Complex)bRow["d1"], (Complex)bRow["d2"]);
bRow["d4"] = Complex.Add((Complex)bRow["d1"], (Complex)bRow["d2"]);

但它不起作用,有什么建议吗?下面两行不起作用

bRow["d3"] = Complex.Subtract((Complex)bRow["d1"], (Complex)bRow["d2"]);
bRow["d4"] = Complex.Add((Complex)bRow["d1"], (Complex)bRow["d2"]);

我的数据有一千多行,bRow["d3"]实际上正在使用来自不同行的数据。

最佳答案

DataTable 不是 .Net 中的通用集合。它专门用于在内存中存储数据库数据。

所以它只支持数据库系统中常用的类型,而Complex不是其中之一。请参阅https://learn.microsoft.com/en-us/dotnet/api/system.data.datacolumn.datatype?view=netframework-4.8#System_Data_DataColumn_DataType

您可以简单地使用元组列表,如下所示:

var tdB_01 = new List<(Complex d1, Complex d2, Complex d3, Complex d4)>();
var d1 = new Complex(6, 2);
var d2 = new Complex(8, 3);
var d3 = d2 - d1;
var d4 = d1 + d2;
tdB_01.Add((d1, d2, d3, d4));

关于c# - 数据表中的复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59097835/

相关文章:

C 等价于 matlab 角函数

c++ - 如何判断变量是否为复数C++

c# - 如何在 C# 中每 2 小时调用一次方法

matlab - 实数的角度()

python - 如何将非常接近的复数识别为相等?

c# - Azure 上对站点的 SSL HttpWebRequest 证书不匹配?

numpy - FFT实部/虚部/绝对部分解释

c# - Visual Studio 锁定文件

c# - 为什么 Console.Readline 没有按预期执行

服务器控件 ASP.NET 中嵌入资源的 .js 文件中的 C# 变量