簡體   English   中英

c#單位轉換庫的食物量

[英]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 ,看看這個庫是否滿足您的需求。

我最近在GitHubNuGet上發布了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)

我剛才寫了這篇文章http://www.carbonatethis.com/archives/38

不知道它是否能滿足您的所有需求,但這涵蓋了很多測量范圍:

http://unitconvertlibrary.codeplex.com/

雖然它看起來處於開發階段,但源存儲庫中只有一個類可用

我還開發了一個單元庫。 它可以在NuGet上找到 存儲庫位於我的bitbucket帳戶上,該帳戶鏈接自我在此處的個人資料。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM