我需要检查Enum中存在的字符串值或不使用Contains
。
public enum Days
{
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
Sunday = 7
}
public class ResultObj
{
public int Id { get; set; }
public string Name { get; set; }
}
var filter = "Wed";
var dayList = Enum.GetValues(typeof(Days))
.Cast<Days>()
.Where(x => Enum.IsDefined(typeof(Days), filter))
.Select(d => new ResultObj
{
Id = (int)d,
Name = d.ToString()
}).ToList();
如果给出“星期三”的意思,我需要一个dayList结果{ Id = 3, Name = Wednesday }
。
如果给定的过滤器为“星期三”,则我需要一个dayList结果{ Id = 3, Name = Wednesday }
。
如果给定过滤器为“星期三”,则我需要一个dayList结果{ Id = 3, Name = Wednesday }
。
如果给定过滤器为“ dnes”,则我需要一个dayList结果{ Id = 3, Name = Wednesday }
。
如果给定的过滤器为“ xyx”,则dayList
计数应为零。
您可以Linq
稍微重写一下方法链,从值数组中选择一个字符串值,Enum
然后检查Enum
名称是否包含过滤器(不区分大小写)。然后选择一个ResultObj
并将Enum
值转换回
var filter = "Wed";
var dayList = Enum.GetValues(typeof(Days))
.Cast<Days>()
.Select(x => x.ToString())
.Where(x => x.Contains(filter, StringComparison.OrdinalIgnoreCase))
.Select(d => new ResultObj
{
Id = (int)Enum.Parse(typeof(Days), d),
Name = d
}).ToList();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句