如何在不区分大小写c#的情况下检查枚举值中的“包含”? - c#

我需要检查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();

在JSON.Net序列化JSON中配置$ id - javascript

在特定情况下,使用JSON.Net反序列化时遇到一些麻烦。我向服务器发出请求,并使用包含集合的JSON.Net序列化对象。然后,我需要在Web应用程序中向该集合添加一个对象,但是我往返于服务器以获取一个初始化的对象,该对象可以插入到我的集合客户端。然后,我将其插入集合中并尝试保存,但是由于新初始化的对象与集合中已有的其他对象具有相同的$ id,因此出现错误。…

LeetCode题解计算机为什么是基于二进制的?

可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制

LeetCode题解统计城市的所有灯泡

这个是我刚毕业的时候,一个真实的面试题,这是一个开放题。题目描述:想办法,将一个城市的所有灯泡数量统计出来。题解:费米估算法1、如果某个城市常驻人口有1000万2、假设每5人居住在一套房里,每套房有灯泡5只,那么住宅灯泡共有1000万只3、假设公众场所每10人共享一只灯泡,那么共有100万只4、主要的这两者相加就得出了1100万只当然实际上这是估算的,具体应…

LeetCode题解黑白圆盘

一个圆盘被涂上了黑白二色,两种颜色各占一个半圆。圆盘以一个未知的速度、按一个未知的方向旋转。你有一种特殊的相机可以让你即时观察到圆上的一个点的颜色。你需要多少个相机才能确定圆盘旋转的方向?题解:可以用一个相机即可

LeetCode题解圆上任取三点构成锐角三角形的概率

来自字节跳动的一道几何题题解:1/4