组合用列表<;列表<;双>>;

本文关键字:gt lt 列表 组合 | 更新日期: 2023-09-27 18:08:00

我有两个List<List<double>>,比如x和y。我需要创建一个新的List<List<double>> z,其中每个元素都是Math.sqrt(xElem + yElem),其中xElem和yElem分别是x和t的对应元素。我可以在C#中使用一个使用LinQ的语句吗?

组合用列表<;列表<;双>>;

要处理单个Linq语句中的多个序列,需要首先对它们进行压缩。由于您有列表的列表,您还需要压缩每对内部列表(可能同时计算结果(。比正常的ToList构造新的列表。

 first.Zip(second, 
     (f,s)=> f.Zip(s, 
        (x,y)=> Math.Sqrt(x+y)).ToList()).ToList()

注意:正如Sayse所指出的,若序列的长度不同,这个代码只会产生短序列长度的结果。如果您需要以某种方式处理不同长度的序列,则需要弄清楚如何处理只有一个序列具有元素的部分。在这种情况下,用for进行定期迭代并对两个列表进行索引可能是更可读的方法。