我有一个List<double>
和一个List<List<double>>
。像这样的例子:
List<double> Label = new List<double>{ 1, 0, 1 };
和
List<List<double>> Matrix = new List<List<double>>
{
new List<double>{1.2, 1.5, 1.8},
new List<double>{1.5, 1.8, 1.2},
new List<double>{1.8, 1.2, 1.5}
};
我想要合并这些列表,并且我想要的输出就像:
1 1.2 1.5 1.8
0 1.5 1.8 1.2
1 1.8 1.2 1.5
另外,两个列表中的数据量始终相同。
答案 0 :(得分:2)
您可以尝试一个简单的for
循环:
for (int r = 0; r < Matrix.Count; ++r) // for each row r in Matrix
Matrix[r].Insert(0, Label[r]); // we insert Label[r] item at 0th position
答案 1 :(得分:2)
尽管我同意OP至少应该在提出这个问题之前发布他/她的尝试,但是我不能拒绝自己尝试。这是我使用Linq的尝试:
List<double> Label = new List<double> { 1, 0, 1 };
List<List<double>> Matrix = new List<List<double>>
{
new List<double>{1.2, 1.5, 1.8},
new List<double>{1.5, 1.8, 1.2},
new List<double>{1.8, 1.2, 1.5}
};
var result = Label.Zip(Matrix, (l, m) => m.Prepend(l));
result
的类型为IEnumerable<IEnumerable<double>>
。该答案使用Zip()
通过将第一个列表(double
)中的元素放在第二个列表(List<double>
)中的元素之前来组合两个列表
答案 2 :(得分:0)
你在这里
@for(int i=0; i<Matrix.Count();i++) {
var val = Label.get(i); //get the corresponding value
Matrix[i].Insert(0,val); //insert val to beginning of this list entry
}