Доступ к названиям единиц измерения "измерительная система" (кг/фунт, м/В и т. д.) В C#

Windows позволяет конфигурировать Measurement system до Metric или U.S. есть ли способ использовать этот параметр для чтения (сокращенных) имен единиц в C#?

например, при отображении веса в Metric Я хочу показать kg а в U.S. Я хочу показать lb. Аналогично для длины, объема и т. д.

Я смотрел на SystemInformation, CultureInfo, конфигурацию и глобализацию, но не видел ничего очевидного. Я что-то упустил или смотрю не так? место?

2 ответов


Я считаю, что лучшее, что вы можете сделать, это определить, является ли ваша культура метрической или нет, а затем справиться с этим самостоятельно. Я не думаю, что есть встроенное форматирование? Я могу ошибаться, но я не могу найти никакой ссылки на это где-либо.

Это позволит вам определить, является ли ваша культура метрической или нет:

    CultureInfo culture = new CultureInfo("en-GB");
    RegionInfo regionInfo = new RegionInfo(culture.LCID);
    bool isMetric = regionInfo.IsMetric;

@GenericTypeTea прав насчет RegionInfo быть местом для поиска.

кроме того, F# содержит множество функций для работы с единицами измерения. Возможно, имеет смысл построить часть того, что вам нужно в F#, и вызвать его из C#.

посмотреть этот блог и последующие сообщения для получения информации о F# и единицах измерения.