【问题标题】:Function for int similar to string.contains类似于 string.contains 的 int 函数
【发布时间】:2012-10-27 05:34:41
【问题描述】:

我有一个绑定到int 的文本框。有一个搜索按钮,它根据文本框中的文本给出结果。如果文本为 12,则应显示所有具有 12 的结果。

对于string,我会使用string.contains。但我不知道在int 的情况下该怎么办。

我正在使用 LINQ 过滤掉结果。

int securityId = Convert.int32(filterColumn.Value, CultureInfo.CurrentCulture);
queryResults=queryResults.Where(generaldata=>generaldata.SecuritiesId.Equals(securityId));  

但这不起作用。我试过关注

string securityId = Convert.ToString(filterColumn.Value, CultureInfo.CurrentCulture);                                
queryResults=queryResults.Where(generaldata=>generaldata.SecuritiesId.ToString().Contains(securityId));  

但是得到 LINQ 异常,我不能在表达式中使用 ToString。

【问题讨论】:

标签: c# string int


【解决方案1】:

我认为你应该检查小于 coz 例如如果你从 0 数到 100 并检查它是否包含 12 那么是的它包含 12 因为

12 < 100

【讨论】:

    【解决方案2】:

    尝试使用SqlFunctions.StringConvert

    string securityId = Convert.ToString(filterColumn.Value, CultureInfo.CurrentCulture);    
    queryResults=queryResults
          .Where(gd=>SqlFunctions.StringConvert((double)gd.SecuritiesId).Contains(securityId));
    

    P.S:SqlFunctions.StringConvert 对于 int 没有重载,这就是为什么要强制转换为 double 的原因。

    【讨论】:

    • 我必须导入什么才能包含 SqlFunctions ?
    • @naveen :我刚刚发现,我必须使查询 SQL 独立。因此,我不能使用这种方法。还有其他选择吗?
    • 为什么 int.Equals 不起作用?对我来说,.Equals 不适用于某些 LINQ 场景,而 == 效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 2011-09-02
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多