首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# ArrayList 隨機賦值陷阱:Add 返回值是索引非元素

     編輯:程式設計綜合問答

代碼對比


// 錯誤寫法 ①
a[i] = a.Add(num.Next(0, 10));
// Add 返回「新元素索引」(0,1,2...),覆蓋 a[i] 導致順序 0-9

// 正確寫法 ②
a.Add(num.Next(0, 10));
// 僅添加,不接收返回值

原理

`ArrayList.Add(object)` 返回值類型為 `int`,表示**插入後的索引位置**,而非插入的對象。寫法 ① 將索引賦給 `a[i]`,導致數組變為 `[0,1,2...]`。

最佳實踐

  • 優先使用泛型 `List` 避免裝箱/拆箱與類型不安全。
  • `List list = new(); list.Add(rand.Next(10));`
  • 若必須用 `ArrayList`,切記**不要接收 Add 返回值賦給元素位置**。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved