打印出MAC地址

Ben*_*Ben 3 c# string-formatting

只是尝试使用string.Format()将系统MAC地址转换为文本格式.但它不起作用:

byte[] MacAddr = new byte[6];

// this works, but rather clumzy
mac = string.Format("{0:X2}-{1:X2}-{2:X2}-{3:X2}-{4:X2}-{5:X2}",            
          MacAddr[0], MacAddr[1], MacAddr[2], MacAddr[3], MacAddr[4], MacAddr[5]);

// give me index error
mac = string.Format("{0:X2}-{1:X2}-{2:X2}-{3:X2}-{4:X2}-{5:X2}", MacAddr);
Run Code Online (Sandbox Code Playgroud)

EDIT1:OK,我错了,但似乎string.format对于工作这家伙的情况下string[].

我可以看到有一种重载方法string.format: Format(String, array<Object>[]()[]).是否有可能创建某种形式的byte [],可以这样做array<Object>[]()[]

fub*_*ubo 8

发生错误是因为您要格式化6个项目,但参数列表中只有1个

//6 parameters expected, only one "MacAddr" given
mac = string.Format("{0:X2}-{1:X2}-{2:X2}-{3:X2}-{4:X2}-{5:X2}", MacAddr); 
Run Code Online (Sandbox Code Playgroud)

与您的工作方法相比,这是一个更短的版本

mac = string.Join("-", MacAddr.Select(x => x.ToString("X2")));
Run Code Online (Sandbox Code Playgroud)