具有恒定长度的Linq Like运算符(我们可以使用" _"?)

时间:2014-04-02 08:11:56

标签: c# linq

我的字符串

    1st   110.01
    2nd   110.01.02
    3rd   110.02
    4th   110.02.01
    5th   110.03.02.03
    6th   110.04

目标只获取最后一个节点。在示例中,我必须参加第2,第4,第5和第6。

所以我有一个递归算法。但我需要知道等于什么

WHERE STR LIKE '110.__'  

在LinQ。

我搜索过以避免重复的问题,但无法找到。感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

可能会检查Length

 string str="110.";
.Where(i => i.StartsWith(str) && i.Lenghth == str.Length+2)

WHERE column LIKE 110.__

相同

答案 1 :(得分:1)

使用内置函数SqlFunctions.PatIndex(模式索引),如

result = result.Where(p => SqlFunctions.PatIndex("110.__", p.Data) > 0)
               .Reverse()
               .Take(4);

修改

为了澄清,你要求的是取最后的 n 项目,例如4.所以要做到这一点你可以使用.Reverse().Take(4)来反转项目的顺序然后取第一个4.如果你想要xan然后反转结果,那么你可以在上面的代码中添加另一个.Reverse()