![](/img/trans.png)
[英]Is there any way to loop through my sql results and store certain name/value pairs elsewhere in C#?
[英]Need a good way to store Name value pairs
我經常遇到一種我希望擁有一組鍵/值對的情況。 這是一個偽代碼的想法:
DataSet MyRequestStatus
{
Accepted = "ACC",
Rejected = "REJ"
}
用法:
InsertIntoTable(MyRequestStatus.Accepted.ToString())
我希望能夠使用友好的“MyRequestStatus.Accepted”,但我希望ToString()返回神秘的“ACC”,而不是“接受”。 獎勵點,隱式轉換而不是必須調用ToString()。
我沒有找到一種明顯的方法來實現這一點與Enums。 你有什么建議?
public static class MyRequestStatus
{
public const string Accepted = "ACC",
Rejected = "REJ";
}
試試這個
public struct MyRequestStatus
{
public static string Accepted = @"ACC";
public static string Rejected = @"REJ";
}
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<string, string> d = new Dictionary<string, string>();
d.Add("Accepted", "ACC");
d.Add("Rejected", "REJ");
string r = d["Rejected"];
}
}
現在您可以使用整個字典API了。
如Marc Gravell所建議的那樣使用具有常量字符串的類,或者如果要保留枚舉,請設置靜態字典以包含映射:
private static Dictionary<MyRequestStatus, string> requestStatusToString =
new Dictionary<MyRequestStatus, string>()
{
{ MyRequestStatus.Accepted, "ACC" },
{ MyRequestStatus.Rejected, "REJ" }
};
然后你可以這樣做:
MyRequestStatus status = MyRequestStatus.Accepted;
string code = requestStatusToString[status];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.