在数组之间传输数据并丢失一些值
Posted
技术标签:
【中文标题】在数组之间传输数据并丢失一些值【英文标题】:Transferring the data between arrays and missing some values 【发布时间】:2016-08-09 18:50:43 【问题描述】:我有一个大小为 200 的一维 String
数组,偶数索引单元 (0,2,4,6,...) 由 Int
和奇数索引单元 (1,3,5,7, ...) 由Float
填充。为了向该数组添加一些值,我想将此数组传输到大小为 [100,2] 的二维 String
数组,第一行由 Int
填充,第二行由浮点数填充.
问题是在数组之间的传输过程中,我随机错过了一些值(我得到的是 Null)。我已经检查了数据以确保我的数据格式正确。
int shomar = 0;
for (int y = 0; y < MITNeighborSource.Length; y +=2)
for (int x = 0; x < Cal.GetLength(0); x++)
if (MITNeighborSource[y] == Cal[x, 0])
MITNeighborSourceEdge[0, shomar] = MITNeighborSource[y]; //course ID
MITNeighborSourceEdge[1, shomar] = Cal[x, 2]; //output degree
MITNeighborSourceEdge[2, shomar] = Cal[x, 3]; //Input degree
MITNeighborSourceEdge[3, shomar] = MITNeighborSource[y+1]; //The cosine similarity
break;
if (MITNeighborSource[y] == Cal[x, 1])
MITNeighborSourceEdge[0, shomar] = MITNeighborSource[y]; //course ID
MITNeighborSourceEdge[1, shomar] = Cal[x, 4]; //output degree
MITNeighborSourceEdge[2, shomar] = Cal[x, 5]; //Input degree
MITNeighborSourceEdge[3, shomar] = MITNeighborSource[y+1]; //The cosine similarity
break;
shomar++;
可能是什么问题?
【问题讨论】:
请发minimal reproducible example,很遗憾,我们无法在没有看到您的代码的情况下帮助您。 @s.m 'Shomar' 显示列的索引 我绝对不会为此目的引入一个二维数组,而只是引入两个独立的列表,一个包含偶数,一个包含奇数。 @LasseV.Karlsen 代码已编辑 我和@HimBromBeere 一起讨论这个问题。另外,给你错误的实际行是什么?执行这段特定代码的单元测试在哪里?如果没有这样的东西,我强烈建议你放弃这个,先写一个简单的测试用例,然后让它通过。这不像你有讨厌的依赖来模拟这里。 【参考方案1】:如果你只是想根据项目的索引将一维数组分成二维数组,你可以像下面那样做。假设 strArray 是您的一维数组:
string[] oneDArray = new[] "200", "2.1", "40", "56.3", "34";
var list = oneDArray .ToList();
var twoDArray = list.GroupBy(x => list.IndexOf(x)%2).Select(x=>x.ToArray()).ToArray();
这里 twoDArray 将有两个数组,其中包含来自 oneDArray 的偶数和奇数索引元素。
【讨论】:
以上是关于在数组之间传输数据并丢失一些值的主要内容,如果未能解决你的问题,请参考以下文章
函数之间的数组指针丢失值(用 swig 编译以在 python3 中使用)
使用 OpenGL 渲染时 CPU 和 GPU 之间的数据丢失