有条件地将元素添加到C#中的列表中

时间:2014-06-11 06:02:03

标签: c# linq list

我有一个double dSet[,]的多维数组,其中每行有1500个元素。我有一个List<int> index,比如100个整数值(0 - 1499)。现在,我必须创建一个包含100个元素的List<double> val,其中每个元素都是dSet [0,i],其中i是List<int> index的元素。我知道可以使用简单的循环轻松完成。我想知道是否可以使用C#中的LinQ使用单个语句来完成。

编辑: 谢谢你的回答。抱歉,但我忘了提到dSet作为ref :(。现在可以完成吗?

2 个答案:

答案 0 :(得分:3)

似乎这就是你要找的东西:

index.Select(i => dSet[0, i]).ToList();

关键是选择您的index列表,为列表中的每个值从dSet选择一个值。

答案 1 :(得分:3)

当然 - 这只是索引每个元素的投影:

List<double> val = index.Select(i => dSet[0, i]).ToList();

每当你对 source 中的每个元素都有&#34;的某些内容时,做一些事情来获得基于该元素的输出值&#34;,&#34 39; s可能最终为source.Select(...),其中...是&#34的表达式;根据该元素做一些输出值&#34;。

ToList()只会将结果(IEnumerable<double>)转换为List<double>