So che questo è stato risposto qualche tempo fa, ma volevo solo chiarire che la soluzione preferita è di solito per creare un metodo di estensione riutilizzabile per la classe PhysicalAddress. Dato che si tratta di una semplice classe di dati, e probabilmente non cambierà, è meglio per motivi di riusabilità. Userò l'esempio di Lorenzo perché mi piace di più, ma puoi usare qualsiasi routine ti si addica.
public static class PhysicalAddressExtensions
{
public static string ToString(this PhysicalAddress address, string separator)
{
return string.Join(separator, address.GetAddressBytes()
.Select(x => x.ToString("X2")))
}
}
Ora si può semplicemente utilizzare il metodo di estensione d'ora in poi in questo modo:
NetworkInterface[] arr = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface item in arr)
{
PhysicalAddress mac = item.GetPhysicalAddress();
string stringFormatMac = mac.ToString(":");
}
ricordare che l'PhysicalAddress.Parse accetta solo l'esagono RAW o un trattino valori separati, nel caso in cui si volesse analizzare indietro in un oggetto. Quindi rimuovere il carattere separatore prima di analizzare è importante.
che è messo ":" solo una volta ogni iterazione in luogo diverso – user1710944
Siete i benvenuti, grazie per essere pazienti. – Adil