从IEnumerable中的字符串获取值

本文关键字:获取 字符串 IEnumerable | 更新日期: 2023-09-27 18:25:12

我有以下代码

    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);
    }

我想找到一种方法,给我的程序字符串"男孩",并得到字符串"B"作为它应该得到的结果。这怎么可能?

从IEnumerable中的字符串获取值

var param = "Boy";
var someBoy = GetAll().Where(g => g.Description == param).Select(g => g.Value).Single();

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

var rez = GetAll().FirstOrDefault(g=>g.Description==string_received);
if(rez==null) throw new ArgumentException();
return rez.Value;

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

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