我有一个double dSet[,]
的多维数组,其中每行有1500个元素。我有一个List<int> index
,比如100个整数值(0 - 1499)。现在,我必须创建一个包含100个元素的List<double> val
,其中每个元素都是dSet [0,i],其中i是List<int> index
的元素。我知道可以使用简单的循环轻松完成。我想知道是否可以使用C#中的LinQ使用单个语句来完成。
编辑: 谢谢你的回答。抱歉,但我忘了提到dSet作为ref :(。现在可以完成吗?
答案 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>
。