使用过滤器将值枚举到字符串列表

时间:2014-07-29 09:38:33

标签: c# linq

我只需要返回1中省略Ant

的值
    public enum AnimalCodeType
{
    Ant = 0,
    Koala = 1,
    Panda = 2,
} 

以下代码为我提供了所有价值......如何更改

    return Enum.GetValues(typeof(AnimalCodeType)).Cast<AnimalCodeType>().Select(v => v.ToString()).ToList();        

2 个答案:

答案 0 :(得分:5)

除了蚂蚁(建议的方式)之外,它会给你一切:

var animalsWithoutAnt = Enum.GetValues(typeof(AnimalCodeType)).Cast<AnimalCodeType>()
    .Where(act => act != AnimalCodeType.Ant)
    .ToList();

或使用int值:

var animalsWithoutAnt = Enum.GetValues(typeof(AnimalCodeType)).Cast<AnimalCodeType>()
   .Where(act => (int)act != 0)
   .ToList();

答案 1 :(得分:4)

return Enum
    .GetValues( typeof(AnimalCodeType) )
    .Cast<AnimalCodeType>()
    .Where( v => (int)v > 0 )
    .Select( v => v.ToString() )
    .ToList();