任何人都知道在 c# 中向一系列通用列表添加值的方法吗?
我目前正在建立一个大型List<List<int>>
的,整个过程花费的时间太长,我试图避免使用 foreach 循环和嵌套的 foreach 循环以节省一些时间。
假设我在一个通用列表中有 600 行。对于前 200 行中的每一行,我想添加一个“1”。对于接下来的 200 个,我想添加一个“2”。对于接下来的 200 个,我想添加一个“3”。
我现在这样做的方式是,我必须循环 600 次并单独添加每个,而我想做的是循环 3 次并批量添加条目。
我希望的代码是这样的:
List<List<int>> idList = GetFullList(); //list contains 600 rows
int[] newItems = {1, 3, 5};
int count = 0;
int amountToAmend = 200;
foreach (int i in newItems)
{
//List<int> newID = new List<int>();
//newID.Add(i);
(idList.GetRange(count, amountToAmend)).Add(i);
count += amountToAmend;
}
显然这不起作用,但希望你能看到我想要的那种东西。在我的应用程序中,我目前需要执行数万个不必要的循环,而如果代码存在,通常少于 10 个循环可以完成这项工作!
更新:我不确定我是否已经很好地解释了这一点,所以只是为了澄清,这里是我在这里寻找的结果
如果我有一个包含 6 行的列表,如下所示:
[6,7,8]
[5,6,7]
[6,4,8]
[2,4,7]
[5,1,7]
[9,3,5]
我知道我想在前 3 行中添加 1,在接下来的 3 行中添加 2,因此它们将变为:
[6,7,8,1]
[5,6,7,1]
[6,4,8,1]
[2,4,7,2]
[5,1,7,2]
[9,3,5,2]
使用 foreach 循环很容易做到这一点,我目前就是这样做的,但由于涉及的数据量很大,我正在寻找减少特定函数所花费时间的方法。我不确定是否存在一种方法,但如果有人知道,那么它将是 Stack Overflow 的好人 :)