C# 以有效的方式替换多个InsertRange()

C# 以有效的方式替换多个InsertRange(),c#,C#,将项目插入到集合中 MyList.Clear(); MyList.InsertRange(MyList.Count, Collection1); MyList.InsertRange(MyList.Count, Collection2); MyList.InsertRange(MyList.Count, Collection3); 在上面的代码中,为了遵循顺序,我在同一个列表中插入了3次。这能被有效地取代吗 不确定这是否更有效: MyList.AddRange(Collection1.Conc

将项目插入到集合中

MyList.Clear();
MyList.InsertRange(MyList.Count, Collection1);
MyList.InsertRange(MyList.Count, Collection2);
MyList.InsertRange(MyList.Count, Collection3);

在上面的代码中,为了遵循顺序,我在同一个列表中插入了3次。这能被有效地取代吗

不确定这是否更有效:

MyList.AddRange(Collection1.Concat(Collection2).Concat(Collection3));
如果集合较大,则在以下行前加上前缀可能会更有效:

MyList = new List<string>(Collection1.Count + Collection2.Count + Collection3.Count);
MyList=新列表(Collection1.Count+Collection2.Count+Collection3.Count);

(假定这是一个
列表

不确定这是否更有效:

MyList.AddRange(Collection1.Concat(Collection2).Concat(Collection3));
如果集合较大,则在以下行前加上前缀可能会更有效:

MyList = new List<string>(Collection1.Count + Collection2.Count + Collection3.Count);
MyList=新列表(Collection1.Count+Collection2.Count+Collection3.Count);

(假定这是一个
列表

不确定这是否更有效:

MyList.AddRange(Collection1.Concat(Collection2).Concat(Collection3));
如果集合较大,则在以下行前加上前缀可能会更有效:

MyList = new List<string>(Collection1.Count + Collection2.Count + Collection3.Count);
MyList=新列表(Collection1.Count+Collection2.Count+Collection3.Count);

(假定这是一个
列表

不确定这是否更有效:

MyList.AddRange(Collection1.Concat(Collection2).Concat(Collection3));
如果集合较大,则在以下行前加上前缀可能会更有效:

MyList = new List<string>(Collection1.Count + Collection2.Count + Collection3.Count);
MyList=新列表(Collection1.Count+Collection2.Count+Collection3.Count);

(假设这是一个
列表

更有效?我不这么认为。您需要添加三个不同的列表。当您添加它们时,将对每一个进行迭代。您可以使语法更紧凑一些,但在幕后,它们仍将在三个集合中进行迭代。

要更高效吗?我不这么认为。您需要添加三个不同的列表。当您添加它们时,将对每一个进行迭代。您可以使语法更紧凑一些,但在幕后,它们仍将在三个集合中进行迭代。

要更高效吗?我不这么认为。您需要添加三个不同的列表。当您添加它们时,将对每一个进行迭代。您可以使语法更紧凑一些,但在幕后,它们仍将在三个集合中进行迭代。

要更高效吗?我不这么认为。您需要添加三个不同的列表。当您添加它们时,将对每一个进行迭代。您可以使语法更紧凑一些,但在幕后,它们仍将在三个集合中进行迭代。

正如Tim所说,这两种方法似乎效率更高,但如果您有许多不同的集合要添加,我更喜欢使用InsertRange的原始方法,以获得更好的代码可读性


对于InsertRange和AddRange,请确保所有集合都不为null,否则会出现异常。

正如Tim所说,这两种方法似乎效率更高,但如果要添加许多不同的集合,我更喜欢使用InsertRange的原始方法,以提高代码可读性


对于InsertRange和AddRange,请确保所有集合都不为null,否则会出现异常。

正如Tim所说,这两种方法似乎效率更高,但如果要添加许多不同的集合,我更喜欢使用InsertRange的原始方法,以提高代码可读性


对于InsertRange和AddRange,请确保所有集合都不为null,否则会出现异常。

正如Tim所说,这两种方法似乎效率更高,但如果要添加许多不同的集合,我更喜欢使用InsertRange的原始方法,以提高代码可读性


对于InsertRange和AddRange,请确保所有集合都不为空,否则将出现异常。

如果您的
集合1,2,3
中的任何一个正在实现
ICollection
(例如
列表
T[]
),则您的方法是最佳的。如果它们都是
IEnumerable
,那么这并不重要-您的或带有串联集合的单个AddRange。

如果您的
集合1,2,3
中的任何一个正在实现
ICollection
(例如是
列表
t[]
),那么您的方法是最优的。如果它们都是
IEnumerable
,那么这并不重要-您的或带有串联集合的单个AddRange。

如果您的
集合1,2,3
中的任何一个正在实现
ICollection
(例如是
列表
t[]
),那么您的方法是最优的。如果它们都是
IEnumerable
,那么这并不重要-您的或带有串联集合的单个AddRange。

如果您的
集合1,2,3
中的任何一个正在实现
ICollection
(例如是
列表
t[]
),那么您的方法是最优的。如果它们都是
IEnumerable
,那么这并不重要-您的或带有串联集合的单个AddRange。

集合的类型是什么1,2,3?3集合在不同的变量中具有相同的类型。我的意思是IEnumerable,ICollection,IList等。参见我的答案。Collection1、2、3的类型是什么?3个集合在不同变量中的类型相同。我的意思是IEnumerable、ICollection、IList等。参见我的答案。Collection1、2、3的类型是什么?3个集合在不同变量中的类型相同。我的意思是IEnumerable、ICollection、,IList等。请参见我的答案。集合的类型是什么?1,2,3?3集合在不同的变量中具有相同的类型。我的意思是IEnumerable、ICollection、IList等。请参见我的答案。这里讨论了效率:这里讨论了效率:这里讨论了效率:这里讨论了效率: