Znam ten odpowiedział jakiś czas temu, ale ja po prostu chciałem wyjaśnić, że preferowanym rozwiązaniem jest zwykle do tworzenia wielokrotnego użytku metodę rozszerzenia dla klasy PhysicalAddress. Ponieważ jest to prosta klasa danych i prawdopodobnie nie ulegnie zmianie, jest to lepsze ze względu na możliwość ponownego użycia. Użyję przykładu Lorenzo, ponieważ lubię go najbardziej, ale możesz użyć dowolnej rutyny.
public static class PhysicalAddressExtensions
{
public static string ToString(this PhysicalAddress address, string separator)
{
return string.Join(separator, address.GetAddressBytes()
.Select(x => x.ToString("X2")))
}
}
Teraz możesz po prostu użyć metody rozszerzenie od teraz tak:
NetworkInterface[] arr = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface item in arr)
{
PhysicalAddress mac = item.GetPhysicalAddress();
string stringFormatMac = mac.ToString(":");
}
Pamiętaj, że PhysicalAddress.Parse akceptuje tylko RAW hex lub kreska oddzielone wartości, w przypadku, gdy chciał analizować go z powrotem do obiektu. Więc usuwanie postaci separatora przed analizą jest ważne.
to jest wstawiane ":" tylko raz w każdej iteracji w innym miejscu – user1710944
Serdecznie witamy, dzięki za cierpliwość. – Adil