从IEnumerable中的字符串中获取值

时间:2013-07-29 00:16:55

标签: c# string ienumerable

我有以下代码

    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”,因为它应该。这怎么可能?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

与之前的答案几乎相同,但检查收到的错误值:)

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

答案 2 :(得分: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