[英]Code to generate mac addresses is generating duplicates
我已經生成了一個MAC地址塊,需要將它們存儲在Oracle 11gR2表中。 我通過SQL Developer Version 4.0.0.13
創建了一個架構,如下所示:
CREATE TABLE "USER"."MAC_DB"
(
"MAC_ADDRESS" VARCHAR2(20 BYTE) NOT NULL ENABLE,
"STATUS" VARCHAR2(20 BYTE) DEFAULT 'Available' NOT NULL ENABLE,
"PO_NUMBER" VARCHAR2(20 BYTE),
CONSTRAINT "MAC_DB_PK" PRIMARY KEY ("MAC_ADDRESS")
)
插入生成的數據會導致一系列重復的值,對此我感到非常困惑。
以下是我用於生成mac地址的代碼。 它不是很漂亮,可以改進並包含一個錯誤。
我正在尋找有關該錯誤發生位置的一些指導 :
public List<string> generateMACAddresses(string prefix)
{
List<string> addresses = new List<string>();
for (int i = 0x00000; i <= 0xFFFFF; i++)
{
addresses.Add(prefix+i.ToString("X").PadRight(5,'0'));
using (var sw = new StreamWriter("macAddresses.txt", append: true))
{
sw.WriteLine(mac);
}
}
return addresses;
}
該方法通過以下方式調用:
generateMACAddresses("AB2B3B4");
我期望生成1,048,576,但是在導入生成的txt文件后,我最終只能得到646574。
我想你應該使用PadLeft
代替PadRight
。
舉個例子:
1.PadRight(5, '0'); // 10000
10.PadRight(5, '0'); // 10000 (again)
100.PadRight(5, '0'); // 10000 (and again)
您應該執行PadLeft
以避免重復
1.PadLeft(5, '0'); // 00001
10.PadLeft(5, '0'); // 00010
100.PadLeft(5, '0'); // 00100
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.