[英]c# unit conversion library for food amounts
我想實現一個簡單的單位轉換庫用於食物測量,即杯子茶匙。 捏,毫升,盎司,升,克,磅等等。有沒有我可以使用的庫,如果不是我想以下面的偽方式自己滾動:
enum Unit
{
Centimeters = 0,
Meter = 1,
Kilometer = 2
}
//| | | 0 | 1 | 2 |
//----------------------------------------------
//| | |Centimeters| Meters| Kilometers|
//----------------------------------------------
//|0|Centimeters|1 | 0.01 | 0.000001 |
//----------------------------------------------
//|1|Meters |100 | 1 | 1000 |
//----------------------------------------------
//|2|Kilometers |100000 | 1000 | 1 |
//----------------------------------------------
public float Convert(Unit UnitFrom, Unit UnitTo, UnitValue)
{
float factor = UnitMatrix[UnitFrom][Unit UnitTo];
return UnitValue * factor;
}
//Usage
Convert(Unit.Kilometers, Unit.Meters, 5)
// Lookup factor in this case would be the one at [2, 1] i.e. 1000 so output is 5000
指針,陷阱,太天真了? 任何幫助都會有用。 我可以研究的當前開源實現也很棒。 TIA
@ n4rzul,我已經開始用C#開發一個開源的測量單位庫,可以很容易地用您的任何單位擴展。 請查看Github的項目網站, https://github.com/cureos/csunits ,看看這個庫是否滿足您的需求。
我最近在GitHub和NuGet上發布了Units.NET。
它為您提供所有常見的單位和轉換。 它重量輕,經過單元測試並支持PCL。
雖然我還沒有整合所有的食物單位,但它列在要添加的內容中。
轉換示例:
Length meter = Length.FromMeters(1);
double cm = meter.Centimeters; // 100
double yards = meter.Yards; // 1.09361
double feet = meter.Feet; // 3.28084
double inches = meter.Inches; // 39.3701
解析並獲取特定於文化的縮寫:
var us = new CultureInfo("en-US");
var norwegian = new CultureInfo("nb-NO");
Unit.Tablespoon == UnitSystem.Create(us).Parse("tbsp")
Unit.Tablespoon == UnitSystem.Create(norwegian).Parse("ss")
"T" == UnitSystem.GetDefaultAbbreviation(Unit.Tablespoon, us)
"ss" == UnitSystem.GetDefaultAbbreviation(Unit.Tablespoon, norwegian)
我還開發了一個單元庫。 它可以在NuGet上找到 。 存儲庫位於我的bitbucket帳戶上,該帳戶鏈接自我在此處的個人資料。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.