在下面,它显示0
作为values的索引。输出的格式必须如下:
2352:0.45678
9878:0.23423
..........
但跑完后,结果如下:
0:0.45678
0:0.23423
.........
显示上述结果后,它再次运行并显示
0:0
0:0
var results = new List<float>(1143600);
for (int z = 0; z < 1143600; z++)
{
results.Add(dotproduct(useridseq, z));//for multiply two vectors
}
var sb1 = new StringBuilder();
foreach (var resultwithindex in results.Select((r, index) => new { result = r, Index = index }).OrderByDescending(r => r.result).Take(n))
{
int indexx = resultwithindex.Index;
for (int yyyy = 0; yyyy <itemori.Length; yyyy++)
{
lineitemori5 = fileitemori.ReadLine();
if (!string.IsNullOrEmpty(lineitemori5))
{
string[] values5 = lineitemori5.Split('\t');
int itemidori5;
foreach (string valuewoow in values5)
{
itemidori5 = Convert.ToInt32(values5[0]);
if (indexx == itemidori5)
{
itemidseq5 = Convert.ToInt32(values5[1]);
}
}
}
}
sb1.AppendFormat("{0}: {1}", itemidseq5, resultwithindex.result);
sb1.AppendLine();
}
MessageBox.Show(sb1.ToString());
}
PS:我有两个数据集,我使用其中一个并计算结果,每个结果都有一个不真实的索引,为了获得真正的索引,我必须使用另一个数据集。 有什么想法吗?
提前致谢