【发布时间】:2016-07-07 15:30:49
【问题描述】:
我有搜索功能之类的要求, 编辑:搜索就像一组 varchars,通常这个 ID 包含 C001、C002、...等值。
因此,如果用户输入 C001-C010 之类的范围,则它应该搜索该 C001-C010 之间的 oracle db 中的所有行,这就是我的要求。
如果用户在文本框中输入一些范围,如 C001-C010,则应将其拆分为两个变量,并应搜索此范围之间的所有元素。
如何做到这一点。我认为使用枚举器范围我们可以做到这一点,但我面临的问题是拆分字符串需要声明为单独的变量并在其之间进行搜索。这是我无法实现的。
示例代码如下。
else if (!_search.MultipleId.Contains('-'))
{
filterExp = filterExp.And(x => x.Id.Contains(_search.MultipleId));
}
【问题讨论】:
-
你的问题不清楚。要拆分字符串,您只需
var searchstrings = _search.MutlipleId.Split('-')但您打算使用结果数组中的值搜索的内容未定义。请澄清您的问题。 -
要补充@crunchy 所说的内容,我们还需要了解您正在搜索的领域。我目前看到的答案采用生成一组可能的字符串并搜索它们的方法;但是,如果可以将搜索字段作为整数进行搜索,则使用范围来产生大于/小于搜索会更有效。
-
嗨@crunchy 已正确编辑问题,请您再次检查。
标签: c# asp.net asp.net-mvc linq