1

我有以下代码

    public const string boy = "B";

    public const string girl = "G";

    private gender(string description, string value)
    {
        Description = description;
        Value = value;
    }

    public static IEnumerable<gender> GetAll()
    {
        yield return new gender("Boy", boy);
        yield return new gender("Girl", girl);
    }

我想找到一种方法给我的程序字符串“Boy”,并得到它应该得到的字符串“B”。这怎么可能?

4

3 回答 3

1
var param = "Boy";
var someBoy = GetAll().Where(g => g.Description == param).Select(g => g.Value).Single();
于 2013-07-29T00:20:08.583 回答
1

几乎与 prevois 答案相同,但检查收到的值是否错误:)

var rez = GetAll().FirstOrDefault(g=>g.Description==string_received);
if(rez==null) throw new ArgumentException();
return rez.Value;
于 2013-07-29T00:22:31.613 回答
0

为什么还要使用 IEnumerable 方法和 Gender 类?在这种情况下,您应该使用 Enum。像这样定义您的枚举:

public Enum Gender { Boy, Girl };

然后,您可以这样做:

Gender gender = Gender.Boy;
string description = gender.ToString();

// If you want to use 'B' as value...
string value = description[0];

在此处阅读有关枚举的更多信息:http: //www.dotnetperls.com/enum

于 2013-07-29T00:36:59.790 回答