C# e> 是安全的,因为目前很难准确地了解您的要求。“是安全的吗?”这是什么意思?您当然可以这样做,它只会从您的列表中复制元素。如果它像预期的那样工作,ypur问题到底是关于什么的?是的,它很好。它不会抛出任何异常或中断代码,如果这就是您的意思的话safe@D

C# e> 是安全的,因为目前很难准确地了解您的要求。“是安全的吗?”这是什么意思?您当然可以这样做,它只会从您的列表中复制元素。如果它像预期的那样工作,ypur问题到底是关于什么的?是的,它很好。它不会抛出任何异常或中断代码,如果这就是您的意思的话safe@D,c#,C#,e> 是安全的,因为目前很难准确地了解您的要求。“是安全的吗?”这是什么意思?您当然可以这样做,它只会从您的列表中复制元素。如果它像预期的那样工作,ypur问题到底是关于什么的?是的,它很好。它不会抛出任何异常或中断代码,如果这就是您的意思的话safe@DanielLoudon这需要更多的解释它对我有用不是enough@PanagiotisKanavos我能猜出OP到底想问什么,当然还有适当解释的余地。但除非OP真的费心去澄清他们的意思,否则我不认为这个问题应该重新讨论。现在,这个问题还不清楚,


e> 是安全的,因为目前很难准确地了解您的要求。“是安全的吗?”这是什么意思?您当然可以这样做,它只会从您的列表中复制元素。如果它像预期的那样工作,ypur问题到底是关于什么的?是的,它很好。它不会抛出任何异常或中断代码,如果这就是您的意思的话safe@DanielLoudon这需要更多的解释<代码>它对我有用不是enough@PanagiotisKanavos我能猜出OP到底想问什么,当然还有适当解释的余地。但除非OP真的费心去澄清他们的意思,否则我不认为这个问题应该重新讨论。现在,这个问题还不清楚,即使你能给出一个有用的答案。MSDN docs没有提到这种行为@Yaros为什么要提到它?它的工作原理是实现细节,与
AddRange
的用户无关。除非明确地这样说,否则您应该假设它是有效的,而不是相反。多亏了指向源代码。MSDN docs没有提到这种行为@Yaros为什么要提到它?它的工作原理是实现细节,与
AddRange
的用户无关。除非明确地这样说,否则您应该假设它是有效的,而不是相反的。
List<int> l = new List<int>() { 1, 2, 3 };
l.AddRange(l);
List<int> l = new List<int>() { 1, 2, 3 };
l.AddRange(l);

foreach(var i in l)
{
    Console.WriteLine(i);   
}
1,2,3,1,2,3
// If we're inserting a List into itself, we want to be able to deal with that.
if (this == c) {
    // Copy first part of _items to insert location
    Array.Copy(_items, 0, _items, index, index);
    // Copy last part of _items back to inserted location
    Array.Copy(_items, index+count, _items, index*2, _size-index);
}
T[] itemsToInsert = new T[count];
c.CopyTo(itemsToInsert, 0);
itemsToInsert.CopyTo(_items, index);  
var list=new List<int>{1,2,3};
list.AddRange(list.Select(i=>i));
    List<int> l = new List<int>() { 1, 2, 3 };
    foreach (var x in l)
    {
        l.Add(x);
    }
// If we're inserting a List into itself, we want to be able to deal with that.
if (this == c) {
    [...code specifically for your use case]
}
else {
    [...code for inserting other collections]
}