我想将一个由每行不同列组成的数据表读取到一个数组中。
我的样本数据如下所示
1 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.098 0.000
1 0.000 0.051 0.851 0.000 0.000 0.000 0.000
1 0.000 0.000 0.000 0.000 0.000 0.000 0.266 0.203 0.000
1 0.011 0.210 0.311 0.000 0.000 0.000 0.000 0.000 0.000
1 0.000 0.000 0.000 0.000 0.000 0.009 0.007 0.497
1 0.004 0.023 0.063 0.140 0.000 0.000 0.000 0.000 0.000
1 0.027 0.010 0.130 0.192 0.156 0.082 0.068
我设法将其放入一个数组中,如下所示:
public static double[][] dataTableToMatrix(DataTable dt)
{
double[][] data = new double[dt.Rows.Count][];
for (int x = 0; x < dt.Rows.Count;x++)
{
data[x] = new double[dt.Columns.Count];
for (int y = 0; y < dt.Columns.Count; y++)
{
if ((dt.Rows[x][y]) != DBNull.Value)
{
data[x][y] = Convert.ToDouble(dt.Rows[x][y]);
}
else
{
break;
}
}
}
return data;
}
我尝试了上面的代码,但是每当有较短的列时,生成的数组总是具有最高的列计数和零。我想读取它,直到每行中的最后一个值,然后跳转到下一行。这个问题有什么解决方案吗?
public static double[][] dataTableToMatrix(DataTable dt)
{
double[][] data = new double[dt.Rows.Count][];
for (int x = 0; x < dt.Rows.Count;x++)
{
var countOfNonNullValuesInRow = dt.Rows[x].ItemArray.Count(a => a != DBNull.Value);
data[x] = new double[countOfNonNullValuesInRow];
for (int y = 0; y < countOfNonNullValuesInRow; y++)
{
data[x][y] = Convert.ToDouble(dt.Rows[x][y]);
}
}
return data;
}
如果我正确理解您的问题,这将满足您的要求(而不是预先分配子数组,只需使用列表,然后将其转换为数组):
public static double[][] dataTableToMatrix(DataTable dt)
{
double[][] data = new double[dt.Rows.Count][];
for (int x = 0; x < dt.Rows.Count;x++)
{
List<double> items = new List<double>();
for (int y = 0; y < dt.Columns.Count; y++)
{
if (dt.Rows[x][y] != DBNull.Value)
items.Add(Convert.ToDouble(dt.Rows[x][y]));
else
break;
}
data[x] = items.ToArray();
}
return data;
}
问题内容: 我正在使用ajax加载数据并在DataTable中动态生成列名。我的数据表具有不同的列数,具体取决于用户的选择。(有一个下拉列表)。 例如,下拉列表中有2个选项,即“ 南部省” 和“ 北部省” 。 南部省 表有4列, 北部省 表有6列。 场景1 第一个用户选择具有4列的 Southern Province 。然后它生成的表没有错误,但是在此之后,如果用户选择具有6列的 Northern
我正在使用的数据库有许多具有相同列但(显然)具有不同表名的表(不是我设计的)。例如(这些是数据库表名): 有没有可能用JPA和Hibernate将这些映射到一个Java类实体?类的名称是,然后在使用它时传入例如,以便对象使用表? 还是只使用普通的、普通的Java对象来完成这样的任务更好? 谢谢你!
所以我们刚刚进行了一个小的实践考试,要求我们阅读以下格式的输入,作为非图形问题的规则。实际的算法一点也不难做到,但我和我的伙伴们都不知道如何从一开始就扫描这些输入。 前两个整数表示行数(4)和列数。(4) 因此,接下来的四行表示每行的规则(1 2 3表示第2行),接下来的四行表示每列的规则(2 2表示第4列),依此类推。 在学习C语言一个学期后,我们只处理了每行具有相同列数的数组,在这个Java模
问题内容: 我有不同长度的清单清单(例如),并想将其转换成整数数组。我了解多维数组中的“子”数组必须具有相同的长度。那么将上述示例中的列表转换成这样的数组(即用零完成)的最有效方法是什么? 问题答案: 您可以使用np.zeros创建一个numpy数组,并用列表元素填充它们,如下所示。 结果是
我正试图用C#语言逐行写入一个文件。这是我的功能 整个函数在一个循环中运行,每一行都应该写入文件。在我的例子中,下一行覆盖现有行,最后,我在csv文件中只得到一条记录,这是最后一条。如何写入文件中的所有行?
我使用的是Primefaces 3.5中的<code>p:dataTable</code>以及延迟加载和动态列。 我有三种类型的列,区别在于过滤的输入。一个有,一个有,最后一个什么都没有。 列通过标记呈现。 一切正常,但不是“懒惰”。我还有,其中每个选项卡都包含这个数据表,并且每个请求都会初始化所有bean。我知道,是在构建时评估的,所以它在tabView之前。 因此,我的问题是:如何在<code