使用Linq逗号分隔字段过滤

时间:2013-10-09 11:41:12

标签: linq

我有一个名为COMMA_SEPARATED_VALUES的字段的表。我怎样才能过滤一个! (我必须将它集成到更大的查询中)LINQ查询 所有行,其中一个条目在整数范围内。

Table TEST
ID          COMMA_SEPARATED_VALUES
-----------------------------------
1           '1,2,3,4'
2           '1,5,100,4,33'
3           '666,999'
4           '5,55,5'

过滤范围“10 - 99”将导致

ID
------------------------
2           (because of 33)
4           (because of 55)

1 个答案:

答案 0 :(得分:2)

如果您了解调用AsEnumerable()方法的性能副作用且不会造成伤害:

int lowerBound = 10;  // lower bound of your range
int upperBound = 99;  // upper bound of your range

var d = from row in context.Test.AsEnumerable()
        let integers = row.COMMA_SEPERATED_VALUES
                          .Split(new char[] { ',' })
                          .Select(p => int.Parse(p))
        where integers.Any(p => p < upperBound && p > lowerBound)
        select row;