在枚举中查找字符串

本文关键字:字符串 查找 枚举 | 更新日期: 2023-09-27 17:57:09

有没有办法在枚举中找到字符串的一部分,如下所示:

Status.Find("InStock");
public enum Status
{
    Unknown,
    InStock,
    InStockReserved,
    Taken,
    TakenReserved,
    Spent,
}

然后获取相应的 int 值。就像在列表的"查找"命令中一样:

list.Find(x => x.Name.Contains("InStock")));

在枚举中查找字符串

听起来你想要这样的东西:

var integers = Enum.GetValues(typeof(Status))
                   .Cast<Status>()
                   .Where(status => status.ToString().Contains("InStock"))
                   .Select(status => (int) status);

Enum 给出整数返回值。因此,您有两种可能性:

  1. 仅基于枚举类型变量进行匹配。

例如:

list.Find(x => (x.StockType == Stock.InStock));
  1. 定义一个返回相应字符串形式的函数:

    字符串到

    数字字符串(股票股票类型){ if(stockType == Stock.InStock) 返回"库存";

    // TODO: define other cases
    

    }