Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
277 views
in Technique[技术] by (71.8m points)

c# - Replace multiple InsertRange() into efficient way

Inserting items to a collection,

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

In the above code, I am inserting 3 times to the same list in order to follow the sequence. Can this be replaced efficiently?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Not sure if this is more efficient:

MyList.AddRange(Collection1.Concat(Collection2).Concat(Collection3));

If the collections are large it will probably more efficient if you prepend this line:

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

(presumed it's a List<string>)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...