【问题标题】:how to use .Contains LINQ in decimal fields [closed]如何在十进制字段中使用 .Contains LINQ [关闭]
【发布时间】:2014-01-23 18:28:56
【问题描述】:

我需要按十进制类型的字段进行过滤。我该怎么做?

以下是我对字符串字段的处理方式:

cartaoCredito.strCartaoCreditoDescricao.ToUpper().Contains(strParam.ToUpper())

这是我的方法:

public List<CartaoCredito> GetCartaoCreditoByintCodigoGrupoUsuarioByFiltro(int intCodigoGrupoUsuario, string strParam)
    {
        return (from cartaoCredito in _DatabaseContext.CartaoCredito
                where cartaoCredito.intCodigoGrupoUsuario == intCodigoGrupoUsuario && (cartaoCredito.strCartaoCreditoDescricao.ToUpper().Contains(strParam.ToUpper()))
                select cartaoCredito).ToList();
    }

【问题讨论】:

  • 不清楚你想在这里做什么。
  • Contains() 也应该与数字原语一起使用。它在哪些方面不适合您?
  • 我很困惑 - 您想过滤到 在给定列表中具有值的行吗?
  • @David - 我认为原始查询使用string.Contains,而不是IEnumerable&lt;string&gt;.Contains
  • decimal 没有 Contains 方法 - 请提供 inputsentities 的类型。

标签: linq asp.net-mvc-4 contains


【解决方案1】:

我认为您正在尝试将对 string.Contains 的调用转换为十进制值,这是行不通的,因为 decimal 没有像 string 这样的 Contains 方法。

如果您有一个decimals集合,并且您想查看某个值是否在该列表中,请执行以下操作:

List<decimal> list = {list of decimals}

var query = {source}.Where(x => list.Contains(x.{decimal property});

或者如果你只有一个值,你不需要Contains。做吧

decimal decParam = {some value};
var query = {source}.Where(x => x.{decimal property} = decParam);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多