数据表中的复数

时间:2019-11-29 01:39:46

标签: 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”]实际上正在使用来自不同行的数据。

1 个答案:

答案 0 :(得分:2)

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

因此,它仅支持数据库系统中常用的类型,而Complex不是其中之一。参见https://docs.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));