【发布时间】:2012-09-26 03:12:16
【问题描述】:
我正在尝试优化通用列表算术运算。我有 3 个可空双精度列表,定义如下。
List<double?> list1 = new List<double?>();
List<double?> list2 = new List<double?>();
List<double?> listResult = new List<double?>();
int recordCount = list1.Count > list2.Count ? list2.Count : list1.Count;
for (int index = 0; index < recordCount; index++)
{
double? result = list1[index] + list2[index];
listResult.Add(result);
}
如果我的列表很大,有什么方法可以让这个操作运行得更快?
感谢您的意见。
【问题讨论】:
-
在将它们添加在一起之前如何填充列表?如果数据来自数据库,那么从 dB 中获取结果的总和会更快。
-
你知道如果两个列表的大小不同,这段代码会产生 ArrayOutOfBoundsException 吗?
-
@juergend 不,他首先要找到哪个列表更短——第 5 行。
-
@Juergend,此语句“int recordCount = list1.Count > list2.Count ? list2.Count : list1.Count;”会解决问题
-
@jeremy,这些列表是从其他操作中填充的,它不是从数据库中读取的
标签: c# linq generics optimization