lambda搜索组合字符串

时间:2013-07-24 05:50:22

标签: c# string lambda contain

这是我的表格数据

 Areas                           Cities
==============================================================
Area1                   City1 , City2 , City3 , City4
Area2                   City5 , City6 , City7 , City8
Area3                   City9 , City10 , City11 , City12
Area4                   City13 , City14 , City15 , City16

如果我提供值City1,我想获得Area1 (例如,City7 => Area2,City14 => Area4) 有没有简单的方法可以使用 Lambra Expression

2 个答案:

答案 0 :(得分:2)

试试这段代码:

yourDataTable.First(x => x.Cities.Split(',').Any(y => y.Trim() == "City1"))

搜索字词的字符串类似于City 1

答案 1 :(得分:2)

如果您需要完全匹配,请尝试

var rec = tbl.ToList().FistOrDefault(x => x.Cities.Split(',')
                                  .Any(City => City == SearchTerm));

Contains会给出错误的结果,因为如果您搜索City1它会匹配City11

注意:

由于您在,之前有空格需要调用Trim方法来获取该字词,如果您需要进行大小写密集搜索,请执行以下操作

var rec = tbl.ToList().FistOrDefault(x => x.Cities.Split(',')
                                  .Any(City => City.Trim().Equals(SearchTerm, StringComparison.InvariantCultureIgnoreCase)));