linq对象获取正确的模式

时间:2012-05-23 12:24:15

标签: c# string linq linq-to-objects

我的记录如下

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变为无效。如果我有完全匹配的模式,我怎么能达到以下结果。

3 个答案:

答案 0 :(得分:1)

取出+"-"

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

答案 1 :(得分:0)

为什么不使用StartsWith

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

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

更多信息:

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

答案 2 :(得分: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;