0

我的记录如下

mazhar-kaunain-baig-5
mazhar-kaunain-baig-5-6
mazhar-kaunain-baig

这是我的查询

ptype = _pagecontext.PagesRefs
                    .Where(m => m.nvcr_Slug.Contains(str+ "-") && m.bit_Active == true)
                    .ToList();

正确结果:

 1) str=mazhar-kaunain-baig

带回

mazhar-kaunain-baig-5
mazhar-kaunain-baig-5-6   

 2) str=mazhar-kaunain  

什么都不带回来

 3) str=mazhar 

什么都不带回来

在这种情况下 contains 和 equals 变得无效。在我有模式的完全匹配的情况下,我怎样才能达到以下结果。

4

3 回答 3

1

拿出来+"-"

sRefs.Where(m => m.nvcr_Slug.Contains(str) && m.bit_Active == true).ToList();

于 2012-05-23T12:26:49.220 回答
0

你为什么不StartsWith改用呢?

确定此字符串实例的开头是否与指定的字符串匹配。

.Where(m => m.nvcr_Slug.StartsWith(str) && m.bit_Active == true).ToList();

更多信息:

http://msdn.microsoft.com/en-us/library/baketfxw.aspx

于 2012-05-23T12:31:40.243 回答
0

这将返回您在情况 1、2 和 3 中提到的确切结果。

var result = from d in data
             let remainingString = d.Slug.Remove(0, Math.Min(text.Length + 1, d.Slug.Length))
             where remainingString.Length > 0 && Char.IsDigit(remainingString[0])
             select d;
于 2012-05-23T12:43:40.073 回答